Promise.all并行执行promise
顺序执行promise
1.使用then链式操作
2.使用promise构建队列
先getA,然后getB执行,最后addAB
function getResult(){
var res=[];
function queue(arr){
var sequence=Promise.resolve();
arr.forEach(item=>{
sequence = sequence.then(item).then(data=>{
res.push(data);
return res;
})
})
return sequence;
}
// 执行队列
queue([getA,getB])
.then(data=>{return addAB(data[0],data[1])})
.then(data=>{console.log(data)})
.catch(e=>console.log(e));}
getResult();
3.用async/await实现类似同步编程
function getResult(){
async function queue(arr){
let res=[]
for(let fn of arr){
var data=await fn();
res.push(data);
}
return await res;
}
queue([getA,getB])
.then(data=>{ return addAB(data[0],data[1])})
.then(data=>console.log(data))}
网友评论