# 有没有用过 Promise.allSettled() ,它是干什么的
Issue
欢迎在 Gtihub Issue 中回答此问题: Issue 247 (opens new window)
Author
接收一个可迭代对象,其中每个成员都是Promise
。在所有给定的Promise
都已经fulfilled
或rejected
后返回一个Promise
,并带有一个对象数组,每个对象表示对应的Promise
结果
相较于Promise.all
,后者会在任何一个Promise
为rejected
时立即结束
简单实现
const myPromiseSettled = (items) => {
const onResolved = (value) => ({ status: "fulfilled", value });
const onRejected = (reason) => ({ status: "rejected", reason });
return Promise.all(
items.map((item) => Promise.resolve(item).then(onResolved, onRejected))
);
};
Author
@mrrs878 代码相当简洁了!