在request 的工具設(shè)計(jì)中,除非時(shí)網(wǎng)絡(luò)請求的錯(cuò)誤,否則不拋出reject。
目的:
1.在業(yè)務(wù)場景中可以減少大量catch后彈出錯(cuò)誤消息的邏輯的編寫,將90%以上情況需要編寫的錯(cuò)誤消息彈出都統(tǒng)一處理了。
2.在async中調(diào)用時(shí),可以使用await 直接得到結(jié)果,而不需要編寫回調(diào)函數(shù),邏輯更通暢而且避免回調(diào)地獄。
在具體業(yè)務(wù)中其實(shí)reject很方便,明確地走兩個(gè)不同的分支。但是作為工具就不太合適了。使用工具重復(fù)使用次數(shù)高,也不是每一次都需要抓住catch,大部分的錯(cuò)誤在工具內(nèi)都會(huì)統(tǒng)一處理。這才符合工具被高頻率調(diào)用的特點(diǎn)。
又為了統(tǒng)一Promise的使用習(xí)慣,在團(tuán)隊(duì)中還是決定要求大家無必要情況下不使用reject了,使用resolve拋出狀態(tài)值。