首页 > 其他 > 详细

实现 Promise.all

时间:2020-05-28 11:38:28      阅读:46      评论:0      收藏:0      [点我收藏+]

Promise.all 允许定义的 Promise 按照数组传入,并依次执行 Promise 并将结果保存在一个列表中,返回一个Promise.

let p1 = new Promise((resolve, reject)=>{
    resolve("只要有爱,");
});

let p2 = new Promise((resolve, reject)=>{
    resolve("在哪里都是天堂!")
});

let p3 = Promise.reject("不要让恨遮蔽了双眼!");

Promise.all([p1, p2]).then(res=>{
    console.log(res)
})

Promise.all([p1, p2, p3]).then(res=>{
    console.log(res);
}).catch(err=>{
    console.log(err);
})

// output
// [ ‘只要有爱,‘, ‘在哪里都是天堂!‘ ]
// 不要让恨遮蔽了双眼!
Promise.myAll = function(promises){
    return new Promise((resolve, reject)=>{
        let res = [];
        promises.forEach((promise, index)=>{
            promise.then(data=>{
                res.push(data);
                if(index===promises.length-1){
                    resolve(res);
                }
            }).catch(err=>{
                reject(err);
            })
        });
    })
}

Promise.myAll([p1, p2]).then(res=>{
    console.log(res)
})

Promise.myAll([p1, p2, p3]).then(res=>{
    console.log(res);
}).catch(err=>{
    console.log(err);
})

 

实现 Promise.all

原文:https://www.cnblogs.com/apple78/p/12979033.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!