1、同时等待多个Promise
//(2+3)*(4+5)
//要求:同时执行(2+3)和(4+5),等结果都到了之后,再执行乘法
Promise.all([add(2,3),add(4,5)]).then(res => {
//利用元组
const [a,b] = res
console.log('result',a,b)
return mul(a,b)
}).then(res => {
console.log('final result',res) //"final result", 45
})
//简写形式
Promise.all([add(2,3),add(4,5)]).then(([a,b]) => {
console.log('result',a,b)
return mul(a,b)
}).then(res => {
console.log('final result',res) //"final result", 45
})
2、只等待一个Promise输出
//只等待一个Promise输出,最先执行完成的最先输出
Promise.race([add(2,3),add(4,5)]).then(res => {
console.log(res) //5
})