3 回答
TA贡献2037条经验 获得超6个赞
function f1(){
return new Promise((resolve,reject) =>{
setTimeout(() =>{
reject("err1");
},1000)
})
}
function f2(){
return new Promise((resolve,reject) =>{
setTimeout(() =>{
reject("err2");
},1000)
})
}
function f3(){
return new Promise((resolve,reject) =>{
setTimeout(() =>{
reject("err3");
},1000)
})
}
const foo = () =>{
return f1().then(() =>{
return f2();
}).then(() =>{
return f3();
}).catch(err =>{
// 如何判断这个错误是哪个函数抛出的??
console.log(err);
return err;
})
}
foo();
TA贡献1859条经验 获得超6个赞
两种方法吧
1 reject抛出的Error对象带有信息
function f1(){
return new Promise((resolve,reject) =>{
setTimeout(() =>{
reject(new Error("f1 err"));
},1000)
})
}
2 在每一个then方法的第二个参数函数里输出错误信息
f1().then(() =>{
return f2();
},()=>{
throw Error("f1 err");
})
添加回答
举报