簡體   English   中英

Node.JS:forEach 與 for 循環異步性質

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM