第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有童鞋遇到過同樣的問題:關于promise鏈式調(diào)用的錯誤捕捉(見描述)?求指導!

有沒有童鞋遇到過同樣的問題:關于promise鏈式調(diào)用的錯誤捕捉(見描述)?求指導!

翻翻過去那場雪 2019-09-08 22:04:45
目前有這樣的需求,頁面上有兩個按鈕---保存和提交,點擊保存的時候,會調(diào)用保存接口,點擊提交的時候回先調(diào)用保存接口然后調(diào)用提交接口。然后我就寫成如下://點擊保存按鈕的時候save(){//請求保存接口axios.get(...).then(){//消息提示}.catch(error){處理錯誤信息}}//請求提交接口commit(){axios.get(...).then(){//....}.catch(error){//錯誤處理}}confirm(){//先請求保存接口axios.get(...).then(){//調(diào)用提交接口this.commit()}.catch(error){處理錯誤信息}}一開始我是這么寫的,因為也就2個接口鏈式,但是后來我仔細一想這樣寫的話,不就是回調(diào)地獄的寫法了嗎,在then的回調(diào)函數(shù)里調(diào)用函數(shù)。所以我改寫成//點擊保存按鈕的時候save(){//請求保存接口axios.get(...).then(){//消息提示}.catch(error){處理錯誤信息}}//請求提交接口commit(){returnaxios.get(...)}confirm(){//先請求保存接口axios.get(...).then(){//調(diào)用提交接口returnthis.commit()}.then(){}.catch(error){//錯誤處理}}但是這樣我想到一個問題,他后面這個catch捕獲的是保存接口的報錯還是提交接口的報錯呢?總所周知then和catch都會返回promise,如果就是就近的使用catch捕捉,那么后面的then方法會運行造成不可預料的錯誤
查看完整描述

2 回答

?
慕俠2389804

TA貢獻1719條經(jīng)驗 獲得超6個贊

//看你想怎么捕捉了//一個promise異常會被就近的catch捕捉
save(){
//請求保存接口
returnaxios.get(...).catch(error){
//單獨處理
}
}
//請求提交接口
commit(){
returnaxios.get(...).catch(...)
}
confirm(){
this.save().then(){
returnthis.commit()
}.then(){}.catch(error){
//這里是不會來的因為上面都捕捉完了
}
}
//驗證
functionaxios(){
returnnewPromise((resolve,reject)=>{
setTimeout(resolve,3000)
//setTimeout(reject,3000)
})
}
functioncommit(){
returnaxios().catch(()=>{
console.log(1)
})
}
functionsave(){
returnaxios().catch(()=>{
console.log(2)
})
}
functionconfirm(){
commit().then(()=>{
//這里判斷是否時序需要執(zhí)行save
console.log(3);
returnsave()
}).then(()=>{
console.log(4);
}).catch(()=>{
console.log(5);
})
}
confirm()
//setTimeout(resolve,3000)
打印34
//setTimeout(reject,3000)
打印1321
                            
查看完整回答
反對 回復 2019-09-08
?
qq_遁去的一_1

TA貢獻1725條經(jīng)驗 獲得超8個贊

換一個寫法
axios.get(...)
.then(this.save)//save和commit但凡有一個方法中catch了,那么這個鏈路下面的catch都不會捕捉到所以catch要控制好,不然什么地方斷的你都不知道
.then(this.commit)
.catch(e=>{})
                            
查看完整回答
反對 回復 2019-09-08
  • 2 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號