promise 并行 串行

2020-07-09  本文已影响0人  Time_Notes

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))}

上一篇 下一篇

猜你喜欢

热点阅读