[英]Node.JS : forEach vs for loop Asynchronous nature
for(var i=0;i<50;i++) {
functionWrappingAsycfuncs(i)
}
var nums = [0,1...50]
nums.forEach(functionWrappingAsyncfuns)
functionWrappingAsycfuncs(i){
readFileAsync(i,function(){
console.log(i);
});
}
在上面的函數中,在 for 循環中運行它的預期性質是記錄 50 50 次? 但是對於 forEach 它確實記錄了 1 2 3 ....
這兩個實現看起來相同,但執行的任務確實不同 第一個函數調用所有異步函數,參數為 0 到 50,但並不真正等待回調完成
但是第二個(在我的一個項目中)似乎在等待回調並繼續數組中的下一項?
他們兩個一樣嗎?
除了第二個是 50 而不是 49,它們在功能上是相同的。 在繼續下一次迭代之前,它們都不會等待回調,並且在這兩種情況下,每次調用都會捕獲當前的 0...49 值作為functionWrappingAsycfuncs
的本地參數,因此它們都會記錄 0 1 2 3...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.