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"
打印。