Promise.allSettled()
Try it
该 Promise.allSettled()方法返回一个在所有给定的 promise 都已经 fulfilled 或 rejected 后的 promise,并带有一个对象数组,每个对象表示对应的 promise 结果。 当您有多个彼此不依赖的异步任务成功完成时,或者您总是想知道每个 promise 的结果时,通常使用它。(当 Promise 全部处理完成后我们可以拿到每个 Promise 的状态, 而不管其是否处理成功.)
const promise1 = Promise.resolve(3); // 成功
const promise2 = new Promise((resolve, reject) =>
setTimeout(reject, 100, "foo")
); // 失败
const promises = [promise1, promise2];
Promise.allSettled(promises).then((results) => {
results.forEach((result) => {
console.log(result);
});
});
/* expected output:
{status: 'fulfilled', value: 3}
{status: 'rejected', reason: 'foo'}
*/