并行创建承诺

Creating Promises in Parallel

本文关键字:承诺 创建 并行      更新时间:2023-09-26

只是尝试使用es6和承诺

有没有办法使用承诺并行执行多项任务?

我想一次启动多个操作,并使用 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!"
});

您正在寻找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]