[英]How to call asyn function inside for loop Node js
我想在for循環中調用async.parellel([],function(){})
。 當我嘗試for循環在異步函數執行之前完成執行。如何解決此問題。
您無法解決問題,因為這不是問題,而是異步函數的工作方式。
如果在循環過程中啟動了一堆異步函數,則后者將整體執行,並在釋放流程控制后將前者放在循環中執行。
因此,您可能會看到包含循環的函數在異步函數啟動之前終止。
一旦所有異步函數都終止,對調用者做出響應的通常方法是使用回調函數作為包含根函數的回調函數的參數,從而很好地處理異步函數,並在所有它們都返回后調用回調。
我同意Yelizaveta Gagarina。
如果要使用for循環,可以執行以下操作:
var fns = [];
for (var i = 0; i < 9; i++) {
fns.push(function(callback){
// do stuff here and call your callback with or without error
callback(null, stuff); // no err in this example
});
}
async.parallel(fns, function(err, stuff){
if(err) return cb(err); // in this example err is null
// do stuff, call next middleware if you are in this case
next();
});
如果要執行每1個功能中的一些功能,則還有async.series。希望這對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.