老师,统一处理错误,为什么控制台只显示捕获第一个Promise对象的错误

来源:5-1 Promise 的注意事项

啊聪聪

2022-11-18 00:04:13

相关代码:

// 3、Promise.all/race/allSettled的错误问题
        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])
        allPromise.then(datas => {
            console.log(datas);
        })
        .catch(err => {
            console.log(err);
        });

相关截图:

https://img.mukewang.com/climg/63765b0f094022fa19200902.jpg

写回答

1回答

好帮手慕星星

2022-11-18

同学你好,因为规定只捕获第一个错误。在另外一个相似问题中进行了回复,可以查看:

https://class.imooc.com/course/qadetail/338333

祝学习愉快!

0

前端工程师

前端入门如同写字,如果你不知道从哪开始,那就选择前端(含Vue3.x,React17,TS)

20327 学习 · 17877 问题

查看课程