Node.JS:forEach vs for循环asynchronous性质

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它logging1 2 3 ….

这两个实现看起来都一样,但是确实有不同的任务第一个函数调用所有asynchronous函数,0到50作为参数,但并不等待callback完成

但第二个(在我的项目之一)似乎等待callback,并继续在数组中的下一个项目?

他们都一样吗?

除了第二个50而不是49,它们在function上是相同的。 在继续下一次迭代之前,都不会等待callback,并且在两种情况下,每个调用都会将当前的0 … 49值作为本地参数捕获到functionWrappingAsycfuncs以便它们都将logging0 1 2 3 …