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

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

如何合理的封裝一個Promise對象?

如何合理的封裝一個Promise對象?

四季花海 2019-03-15 18:15:05
現(xiàn)在有如下方法:isProvid(){  return this.$store.dispatch('isSupported')}該方法只考慮正確返回的情況,因為其他異常通過axios的攔截器里面處理掉了,返回值里面包含一個code,如果code不為空,表示有業(yè)務(wù)錯誤,需要前端提示,否則表示正確?,F(xiàn)在有三個地方需要調(diào)用該方法,如果有錯誤(code不為空),所有調(diào)用方法的錯誤處理方式都一樣——彈出alert就好,如果正確,有兩個調(diào)用的地方需要自行處理,如下://第一處調(diào)用this.isProvid().then(res => {    //處理A邏輯})//第二處調(diào)用this.isProvid().then(res => {    //處理B邏輯})//第一處調(diào)用(不處理任何邏輯)this.isProvid()那么,isProvid應(yīng)該如何封裝呢?自己的思路isProvid(){    return this.$store.dispatch('isProvid').then(res => {        let code = res.data.code;        if(!code){//code不為空,表示有錯誤信息            alert('彈出根據(jù)code對應(yīng)的錯誤信息')            return Promise.reject()//不需要返回錯誤信息,因為這里已經(jīng)集中處理了        }else{            //如果正確,不返回任何東西,因為調(diào)用方不需要根據(jù)返回值來判斷            return Promise.resolve()         }    })}注意:三個調(diào)用方都是以then方式來調(diào)用isProvid方法疑問如下:1、這么寫正確么?2、return this.$store.dispatch('isProvid')返回的就是promise,但是then里面又包含了return Promise返回promise對象,是什么意思呢?(看到有人這么寫,但是不知道這么寫正確不)
查看完整描述

2 回答

?
江戶川亂折騰

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

按照你目前的封裝沒有問題的啊,只不過每個 .isProvid() 都會調(diào)用一個 .dispatch()

如果你是希望每個 .isProvide() 都返回的是對同一個 .dispatch() 的結(jié)果,那可以參考 jQuery Promise 的 done() 事件。Promise 的 then 鏈會改動對象主體,需要采用事件的方式來實現(xiàn)對同一個主體注冊多個處理函數(shù)。


查看完整回答
反對 回復(fù) 2019-03-20
  • 2 回答
  • 0 關(guān)注
  • 783 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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