Promise.all是里面所有的promise请求都成功了,才可以走到then那一步
只要有一个promise请求失败了,就走catch那步
// 入参、出参
// 入参:包含多个promise的数组
// 出参:返回一个新的promise
function all (promiseArr) {
let arr = []
let index = 0
return new Promise(function (resolve,reject) {
for (let i = 0; i < promiseArr.length; i++){
let item = promiseArr[i]
item.then(res => {
index++
arr[i] = res
// 所有请求都成功了,则代表成功
if (index === promiseArr.length) {
resolve(arr)
}
}).catch(reject)
}
})
}
Promise.race()返回最先完成的那个promise的结果
race就是赛跑的意思。意思就是,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。