不管是成功状态还是失败状态,只输出最快的Promise。工作的原理返回一个Promise,一旦迭代器中的某个Promise履行或拒绝,返回的Promise就会履行或拒绝。
Promise.race()手撕代码用法:
function promiseRace(promise){
if(!Array.isArray(promise)) {
throw new Error("Promise must be an array")
}
return new Promise(function(resolve, reject)=>{
promise.forEach(p => {
Promise.resolve(p).then(data=>{
resolve(data)
},err=>{
reject(err)
})
})
})
}
Promise.prototype.finally方法
finally()方法用于指定无论Promise对象的最终状态如何,都将执行finally。Finally不接受参数,finally独立于先前的状态,不依赖于先前的运行结果。