Node.js的循环模块
几分钟前,我问了循环,请参阅JavaScript中的循环asynchronous 。
这一次,我的问题是 – 是否有任何Node.js模块?
for ( /* ... */ ) { // Wait! I need to finish this async function someFunction(param1, praram2, function(result) { // Okay, continue }) } alert("For cycle ended");
难以将这些东西转移到模块中吗?
编辑:更新了代码。
function asyncLoop(iterations, func, callback) { var index = 0; var done = false; var loop = { next: function() { if (done) { return; } if (index < iterations) { index++; func(loop); } else { done = true; callback(); } }, iteration: function() { return index - 1; }, break: function() { done = true; callback(); } }; loop.next(); return loop; } exports.asyncFor = asyncLoop;
而一个小testing:
// test.js var asyncFor = require('./aloop').asyncFor; // './' import the module relative asyncFor(10, function(loop) { console.log(loop.iteration()); if (loop.iteration() === 5) { return loop.break(); } loop.next(); }, function(){console.log('done')} );
rest取决于你,这是不可能的,这是100%通用的。
是的,你可以使用Async.js 。
Async是一个实用程序模块,它为asynchronousJavaScript提供了直接,强大的function。 虽然最初devise用于node.js,但它也可以直接在浏览器中使用。