几分钟前我问过循环,见Asynchronous for cycle in JavaScript.
这一次,我的问题是 – Node.js有什么模块吗?
for ( /* ... */ ) {
// Wait! I need to finish this async function
someFunction(param1,praram2,function(result) {
// Okay,continue
})
}
alert("For cycle ended");
最佳答案
是不是很难将这些东西转移到模块中?
原文链接:https://www.f2er.com/js/429405.html编辑:更新了代码.
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%通用.