Promise.allSettled 兼容方法
- 基于 Promise.all 实现兼容,运行环境需支持 Promise API,原生方法参考此处。
/**
* [Polyfill] Promise.allSettled
* @param {Array} promises 捕获的 Promise
* @return {Promise} 按顺序捕获的所有结果
*/
function PromiseAllSettled(promises = []) {
const resolveHandler = value => ({ status: 'fulfilled', value })
const rejectHandler = reason => ({ status: 'rejected', reason })
return Promise.all(promises.map(p => Promise.resolve(p).then(resolveHandler, rejectHandler)))
}
// Polyfill
Promise.allSettled || (Promise.allSettled = PromiseAllSettled)
本文介绍如何使用自定义函数PromiseAllSettled实现Promise.all的增强版本,用于在所有Promise完成时返回每个任务的状态,包括成功、失败和已完成结果,适用于不支持Promise.allSettled的环境。
700

被折叠的 条评论
为什么被折叠?



