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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何合理的封裝一個(gè)Promise對(duì)象?

如何合理的封裝一個(gè)Promise對(duì)象?

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

2 回答

?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

如果this.$store.dispatch('isProvid')是一個(gè)promise你完全可以這么寫,效果如你寫的是一樣的:
isProvid(){
returnthis.$store.dispatch('isProvid').then(res=>{
letcode=res.data.code;
if(!code){//code不為空,表示有錯(cuò)誤信息
alert('彈出根據(jù)code對(duì)應(yīng)的錯(cuò)誤信息')
throw"";
}
})
}
但你這樣寫,多次調(diào)用其實(shí)是浪費(fèi)的,甚至出現(xiàn)多個(gè)(alert)報(bào)錯(cuò),更好一點(diǎn)的做法是你并不需要isProvid方法:
letemptFn=()=>{};//定義一個(gè)空錯(cuò)誤處理函數(shù),用來除警告;
//第一處調(diào)用(不處理任何邏輯,只用來報(bào)錯(cuò))
this.isProvid=this.$store.dispatch('isProvid').then(res=>{
letcode=res.data.code;
if(!code){//code不為空,表示有錯(cuò)誤信息
alert('彈出根據(jù)code對(duì)應(yīng)的錯(cuò)誤信息')
throw"";
}
});
//isProvid不是一個(gè)方法就是一個(gè)promise對(duì)像
this.isProvid.then(res=>{
//處理A邏輯
},emptFn)
this.isProvid.then(res=>{
//處理B邏輯
},emptFn)
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-22
  • 2 回答
  • 0 關(guān)注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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