[英]Using async function inside a loop and calling a callback only after the loop has finished
我正在尝试编写一个在循环中调用异步函数的函数,并且仅在循环完成时才调用具有结果的回调。
像这样:
function foo(cb){
var result;
for(var i=0; i < 999; i++){
asyncFunction(i, function(val){
do something with result
});
}
cb(result);
}
但是我看到它到达cb(result);
在它实际上完成从所有asyncFunction
调用返回的操作之前。
有什么可以做,以使等待调用以前完成环cb
? 诺言会有所帮助吗?
异步库具有您需要的所有功能: http : //caolan.github.io/async/
也许这可以为您提供更多帮助:
function asyncFunction (callback) {
// Do stuff
return callback()
}
function foo () {
var result = 0
for (var i = 0; i < 999;) {
asyncFunction(function () {
i++
result += i
})
}
console.log(result)
}
foo()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.