有人可以解释一下这两者之间的不同之处:
async.each(items, function (item, callback) {
// Do something
});
或者:
items.forEach(function(item) {
// Do something
)};
答案 0 :(得分:9)
是非阻塞(异步),意味着脚本在运行时继续执行。它也是并行运行,意味着同时处理多个项目。这是一个由外部库提供的方法,我猜async。它不是原生的Javascript功能,也没有添加到Array.prototype
,因此您无法编写myArray.each
。
阻塞(同步),意味着脚本的执行等待直到完成。它正在运行序列,意味着在处理前一项之后处理每个项目。 forEach
是原生的Javascript函数(spec)&在Array.proptotype
上定义,因此您只需编写myArray.forEach
而不是Array.forEach(myArray)
。例如,如果您推送到forEach
循环中的数组,则可以在forEach
调用后访问行中的推送值。