【问题标题】:Async each vs forEach js异步每个 vs forEach js
【发布时间】:2017-06-16 17:02:11
【问题描述】:

谁能解释一下这两者的区别:

async.each(items, function (item, callback) {
    // Do something
});

或:

items.forEach(function(item) {
 // Do something
)};

【问题讨论】:

  • 同步与非同步(异步)
  • 第一个将继续执行.each()之后的任何脚本,而循环仍在运行。第二个将在执行任何进一步的脚本之前完成循环。

标签: javascript async.js


【解决方案1】:

async.each

是非阻塞的(异步的),意味着您的脚本在运行时继续执行。它也是并行运行的,这意味着同时处理多个项目。这是一个外部库提供的方法,我猜是async。它不是原生 Javascript 功能,也没有添加到Array.prototype,因此你不能写myArray.each

Array.forEach

是阻塞的(同步的),意味着你的脚本的执行要等到它完成。它是连续运行的,意味着在处理前一个项目之后处理每个项目。 forEach 是一个原生 Javascript 函数 (spec) 并在 Array.proptotype 上定义,因此您可以简单地编写 myArray.forEach 而不是 Array.forEach(myArray)。例如,如果您在 forEachloop 中推送到数组,那么您可以在 forEach 调用之后的行中访问推送的值。

【讨论】:

  • 另外值得注意的是async.each是并行执行的。如果需要,async.eachSeries 可用。
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多