Promise.all()和Promise.race()都可以放一个存储Promise对象的数组
Promise.all() 是数组里面所有的Promise对象执行结束之后会返回一个存储所有 promise对象的结果
var promiseA= function () {
return new Promise((resolve,reject)=>{
setTimeOut(()=>{
console.log('我是PromiseA')
resolve('A')
},3000)
})
}
var promiseB= function () {
return new Promise((resolve,reject)=>{
setTimeOut(()=>{
console.log('我是promiseB')
resolve('B')
},4000)
})
}
Promise.all([promiseA(),promiseB()]).then((res)=>{console.log(res)}) // 输出["A", "B"]
Promise.race([promiseA(),promiseB()]).then((res)=>{console.log(res)}) // 输出["A"],因为A的setTimeout延迟比B早
Promise.race()只会返回一个执行速度最快的Promise对象返回的结果
其他异步函数也会照样执行,只是不会再执行resolve和reject,也不会返回结果了
console.log()还是会照常执行,只是不会执行resolve('B')