Skip to content

输出什么?

Posted on:2021年7月3日 at 22:35
const promise1 = Promise.resolve("First");
const promise2 = Promise.resolve("Second");
const promise3 = Promise.reject("Third");
const promise4 = Promise.resolve("Fourth");

const runPromises = async () => {
  const res1 = await Promise.all([promise1, promise2]);
  const res2 = await Promise.all([promise3, promise4]);
  return [res1, res2];
};

runPromises()
  .then((res) => console.log(res))
  .catch((err) => console.log(err));

Promise.all 方法可以并行式运行promise。如果其中一个promise失败了,Promise.all 方法会带上被reject的promise的值rejects。在这个例子中, promise3 带着 "Third" 值reject。我们在调用 runPromises 时在 runPromises 函数内部的 catch 方法去捕获任意error从而捕获到被reject的值。因为 promise3 带着 "Third" 被reject,所以只有 "Third" 打印。

原文转自:https://fe.ecool.fun/topic/849fda3c-2d6b-4192-8ea3-d8bc23541599