Promise.any() 静态方法将一个 Promise 可迭代对象作为输入,并返回一个 Promise。当输入的任何一个 Promise 兑现时,这个返回的 Promise 将会兑现,并返回第一个兑现的值。当所有输入 Promise 都被拒绝(包括传递了空的可迭代对象)时,它会以一个包含拒绝原因数组的 AggregateError 拒绝。Promies.any[MDN]
- 接受参数是一个可迭代对象
- 返回是一个Promise
- 当其中有个一状态改为fulfilled时,就立即返回
- 当所有item状态都为rejected时 按输入顺序返回一个errs数组
类似Promise.all
const errP1 = Promise.reject('1')
const errP2 = new Promise((resolve, reject) => reject('2'))
const errP3 = new Promise((resolve, reject) => setTimeout(() => {
reject('3')
}, 100))
const errP4 = new Promise((resolve, reject) => reject('4'))
Promise.any([errP1, errP2, errP3, errP4]).catch(err => console.log(err))
myPromiseAny([errP1, errP2, errP3, errP4]).catch(err => console.log(err))