有人能为我解释一下这两者之间的区别吗:
async.each(items, function (item, callback) {
// Do something
});
或者:
items.forEach(function(item) {
// Do something
)};
有人能为我解释一下这两者之间的区别吗:
async.each(items, function (item, callback) {
// Do something
});
或者:
items.forEach(function(item) {
// Do something
)};
async.each
是一个非阻塞的(异步的)方法,这意味着它在运行时您的脚本也在继续执行。同时它也是并行的,这意味着多个项目在同一时间进行处理。这是由外部库提供的一个方法,我猜测这个库可能是 async。它不是原生的 JavaScript 特性,也没有添加到 Array.prototype
,因此您不能编写 myArray.each
。
Array.forEach
是一个阻塞的(同步的)函数,这意味着您的脚本将等待它完成后才会继续执行。它以串行的方式运行,这意味着每个项都在前一个项被处理后处理。 forEach
是 JavaScript 的原生函数 (规范) 并定义在 Array.proptotype
上,因此您可以简单地编写 myArray.forEach
而不必编写 Array.forEach(myArray)
。例如,如果您在 forEach
循环中推入一个数组,则可以在 forEach
调用之后的行中访问被推入的值。
async.each
是并行执行的。如果需要,可以使用 async.eachSeries
。 - Robbie
.each()
循环运行时继续执行任何脚本,而第二个方法则会在完成循环之前执行所有后续脚本。 - Reinstate Monica Cellio