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");
})
添加回答
舉報