• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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