28 lines
694 B
JavaScript
28 lines
694 B
JavaScript
|
const allSettled =
|
||
|
Promise.allSettled ? promises => Promise.allSettled(promises)
|
||
|
: promises => {
|
||
|
const reflections = []
|
||
|
for (let i = 0; i < promises.length; i++) {
|
||
|
reflections[i] = Promise.resolve(promises[i]).then(value => ({
|
||
|
status: 'fulfilled',
|
||
|
value,
|
||
|
}), reason => ({
|
||
|
status: 'rejected',
|
||
|
reason,
|
||
|
}))
|
||
|
}
|
||
|
return Promise.all(reflections)
|
||
|
}
|
||
|
|
||
|
module.exports = promises => allSettled(promises).then(results => {
|
||
|
let er = null
|
||
|
const ret = new Array(results.length)
|
||
|
results.forEach((result, i) => {
|
||
|
if (result.status === 'rejected')
|
||
|
throw result.reason
|
||
|
else
|
||
|
ret[i] = result.value
|
||
|
})
|
||
|
return ret
|
||
|
})
|