1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| 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
| })
|
|