1.await 可以获得多个promise 的返回结果
2. Promise.all 返回的也是promise,所以可以直接await Promise.all();
1. 使用Promise
function fn(){
return new Promise((resolve,reject)=>{
let randomNum = parseInt(Math.random()*6+1);
console.log(randomNum);
if(randomNum>3){
resolve('买');
}
else{
reject('不买');
}
})
}
Promise.all([fn(),fn()]).then((x)=>{console.log(x,'success')},(y)=>{console.log(y,'error');});
- Promise.all 里面参数为一个数组,数组的每一项是一个返回promise 的函数调用
- then 的第一个参数是所有promise都成功的调用,返回结果是一个数组,数组的每一项为函数promise 的返回结果。
- then 的第二个参数:返回结果有一个失败则执行失败的回调,拿到的是第一个失败的值
2. 使用await
await 是可以获得多个promise 返回结果的,Promise.all()返回的也是promise结果。所以想要使用await 拿到多个promise的返回值,可以直接await Promise.all();
function fn(){
return new Promise((resolve,reject)=>{
let randomNum = parseInt(Math.random()*6+1);
console.log(randomNum);
if(randomNum>3){
resolve('买');
}
else{
reject('不买');
}
})
}
async function test(){
try{
let res = await Promise.all([fn(),fn()]);
console.log(res,'success');
}
catch(error){
console.log(error,'error');
}
}
test();
- Promise.all([fn(),fn()]) 都返回resolve(); 才能够拿到成功的返回值
- Promise.all([fn(),fn()]) 有一个返回reject(), 则进入catch(error), 拿到失败的返回值
本文介绍了如何使用Promise.all和async/await来处理多个并发的Promise任务。通过示例展示了当所有Promise成功时触发then回调,以及任何一个Promise失败时触发catch错误处理。在async函数中,await关键字可以等待Promise.all的结果,简化并发任务的处理。
1201

被折叠的 条评论
为什么被折叠?



