老师,两个Promise对象状态都失败,为什么控制台只显示第一个报错的

老师,两个Promise对象状态都失败,为什么控制台只显示第一个报错的

相关代码:

const delay = ms => {
            return new Promise(resolve => {
                setTimeout(resolve,ms);
            });
        };

        const p1 = delay(1000).then(() => {
            console.log('p1 完成了');

            // return 'p1';
            return Promise.reject('reason');
        })
        // .catch(err => {
        //     console.log('p1',err);
        // });

        const p2 = delay(2000).then(() => {
            console.log('p2 完成了');

            // return 'p2';
            return Promise.reject('reason');
        })
        // .catch(err => {
        //     console.log('p2',err);
        // });

        const allPromise = Promise.all([p1,p2])

相关截图:

https://img1.sycdn.imooc.com//climg/637657040937730f19200902.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2022-11-18 09:42:02

同学你好,只显示第一个错误是官方文档中规定的,参考:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

https://img1.sycdn.imooc.com//climg/6376e26809262b1608900277.jpg

了解即可。祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师