老师,如果一个错误分开写是不是就能捕获多次同一个错误了
const delay = ms => {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
};
const p1 = delay(1000).then(() => {
console.log('p1 完成了');
// return 'p1';
return Promise.reject('reason');
});
const p1err=p1.catch(err=>console.log(err+"错误"))
// .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));
// 错误既可以单独处理,也可以统一处理
// 一旦被处理,就不会在其他地方再处理一遍
const p1err=p1.catch(err=>console.log(err+"错误"))
上述代码在p1后面加了一个捕获p1错误的语句,输出结果为
p1 完成了
reason错误
reason
p2 完成了
这样的话,为什么是同一个错误,可以被捕获两次。
17
收起
正在回答
2回答
同学你好,如果一个错误分开写,可以多次捕获错误,并不是同一个错误,而是捕获代码执行时对应的错误。例如:同学粘贴的代码中,捕获的是不同位置使用p1产生的错误,两处的错误并不是同一个错误
2、为什么捕获两次,可以参考第一条解析理解。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星