[英]Loop module for Node.js
幾分鍾前我問過循環,請參閱JavaScript中的Asynchronous for cycle 。
這一次,我的問題是 - 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;
還有一個小測試:
// 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')}
);
休息取決於你,不可能使這100%通用。
是的,您可以使用Async.js 。
Async是一個實用程序模塊,它提供了直接,強大的函數來處理異步JavaScript。 雖然最初設計用於node.js,但它也可以直接在瀏覽器中使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.