ES6添加了Promise對象,成功時(shí)在then中處理,失敗則在catch中處理,但有時(shí)候,我們需要在無論成功或失敗時(shí)都要做一些事,比如隱藏loading, 記錄日志等等,下面我們以瀏覽器端ajax請求為例,我們使用axios(它是基于Promise的):
成都創(chuàng)新互聯(lián)公司成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場為導(dǎo)向”的快速反應(yīng)體系。對公司的主營項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門戶設(shè)計(jì)推廣、行業(yè)門戶平臺運(yùn)營、成都App制作、成都做手機(jī)網(wǎng)站、微信網(wǎng)站制作、軟件開發(fā)、四川服務(wù)器托管等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從成都創(chuàng)新互聯(lián)公司可以獲得的服務(wù)效果。
axios.get("/").then(()=>{ //處理邏輯 ... console.log("請求結(jié)束") hideLoading(); }).catch(()=>{ console.log("請求結(jié)束") hideLoading(); })
這樣的代碼, 很冗余。每到這個(gè)時(shí)候都有點(diǎn)懷念jQuery:
$.get("/").done(()=>{ //處理邏輯 }).always(()=>{ console.log("請求結(jié)束") hideLoading(); })
es6-promise-always正是對ES6的功能做了一個(gè)擴(kuò)充,使其支持always,并同時(shí)支持node和browser.
使用
1.安裝
npm install es6-promise-always --save
2.引入使用
require("es6-promise-always") axios.get("/").then(()=>{ //處理邏輯 }).always(()=>{ console.log("請求結(jié)束") hideLoading(); })
always(data, error)
Tips
不要擔(dān)心這個(gè)會讓你的程序變胖!es6-promise-always非常小。剛開始實(shí)現(xiàn)時(shí)always時(shí),走錯(cuò)了方向,辛好迷途知返。github地址:https://github.com/wendux/es6-promise-always
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。