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,但它也可以直接在浏览器中使用。