【问题标题】:Creating Promises in Parallel并行创建 Promise
【发布时间】:2016-03-02 14:12:37
【问题描述】:

只是尝试使用 es6 和 promise

有什么方法可以使用 Promise 并行执行多个任务?

我想一次启动多个操作,并使用 Promise 创建一个新的 Promise,当它的所有输入 Promise 都解决时,该 Promise 将被解决。

如果传入的promise都没有失败,则新的promise成功;否则,它将因最后一个错误而失败。

我对 Promise 的了解只有 - 如何创建 Promise 并将它们链接起来。

let promise = new Promise(function(resolve, reject) {
  // do a thing, possibly async, then…

  if (/* everything turned out fine */) {
    resolve("Successfully completed!");
  }
  else {
    reject(Error("Error occurred!"));
  }
});

promise.then(function(result) {
  console.log(result); // "Successfully completed!"
}, function(err) {
  console.log(err); // Error: "Error occurred!"
});

【问题讨论】:

标签: javascript promise ecmascript-6 es6-promise


【解决方案1】:

您正在寻找Promise.all

const p1 = Promise.resolve(1)
const p2 = Promise.resolve(2)
const p3 = Promise.resolve(3)

const p4 = Promise.all([p1, p2, p3])

p4.then(values => console.log(values)) // [1, 2, 3]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2016-03-15
    • 2021-05-17
    • 2017-11-18
    • 2018-09-16
    相关资源
    最近更新 更多