Promise.allSettled() 静态方法将一个 Promise 可迭代对象作为输入,并返回一个单独的 Promise。当所有输入的 Promise 都已敲定时(包括传入空的可迭代对象时),返回的 Promise 将被兑现,并带有描述每个 Promise 结果的对象数组。MDN文档
- 接受一个可迭代对象 作为参数
- 返回一个Promise
- 输入的每个item 状态只要是 settled 都要保存到结果中
- 返回的兑现数组是按照输入顺序返回
const p1 = Promise.resolve(3);
const p2 = 1337;
const p3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("foo");
}, 100);
});
const promises=[p1,p2,p3];
myAllSettled(promises).then((results) =>
results.forEach((result) => console.log(result)),
);