我有一个执行多次迭代的for循环。我想将这段代码放在自定义异步函数中,因为它阻塞。无论如何,我可以写一个函数,所以它会在循环迭代后调用一个回调结束了?。
答案 0 :(得分:1)
使用异步函数内部循环范例。这可以确保使用索引变量的正确值调用异步函数。
var total = someObject.list.length;
var count = 0;
for(var i = 0; i < total; i++){
(function(foo){
myobj.get(someObject.list[foo], function(err, response) {
do_something(foo);
count++;
if (count > total - 1) done();
});
}(i)); //To immediately invoke the function passing 'i' as parameter
}
function done() {
console.log('All data loaded');
}