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 までのすべての非同期関数を呼び出しますが、コールバックが完了するのを実際には待ちません
しかし、2 つ目 (私のプロジェクトの 1 つ) は、コールバックを待って、配列内の次の項目に進むようです?
両方とも同じですか?