目前有這樣的需求,頁面上有兩個按鈕---保存和提交,點擊保存的時候,會調(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方法會運行造成不可預料的錯誤
有沒有童鞋遇到過同樣的問題:關于promise鏈式調(diào)用的錯誤捕捉(見描述)?求指導!
翻翻過去那場雪
2019-09-08 22:04:45