codekingpro/portable-devtools
114k
1const allSettled =
2 Promise.allSettled ? promises => Promise.allSettled(promises)
3 : promises => {
4 const reflections = []
5 for (let i = 0; i < promises.length; i++) {
6 reflections[i] = Promise.resolve(promises[i]).then(value => ({
7 status: 'fulfilled',
8 value,
9 }), reason => ({
10 status: 'rejected',
11 reason,
12 }))
13 }
14 return Promise.all(reflections)
15 }
16
17module.exports = promises => allSettled(promises).then(results => {
18 let er = null
19 const ret = new Array(results.length)
20 results.forEach((result, i) => {
21 if (result.status === 'rejected')
22 throw result.reason
23 else
24 ret[i] = result.value
25 })
26 return ret
27})
28 