[英]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.