深入理解ES6 Promise 擴展always方法
ES6添加了Promise對象,成功時在then中處理,失敗則在catch中處理,但有時候,我們需要在無論成功或失敗時都要做一些事,比如隱藏loading, 記錄日志等等,下面我們以瀏覽器端ajax請求為例,我們使用axios(它是基于Promise的):
axios.get("/").then(()=>{ //處理邏輯 ... console.log("請求結(jié)束") hideLoading(); }).catch(()=>{ console.log("請求結(jié)束") hideLoading(); })
這樣的代碼, 很冗余。每到這個時候都有點懷念jQuery:
$.get("/").done(()=>{ //處理邏輯 }).always(()=>{ console.log("請求結(jié)束") hideLoading(); })
es6-promise-always正是對ES6的功能做了一個擴充,使其支持always,并同時支持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)
- data: resolve的數(shù)據(jù)。
- error: reject的數(shù)據(jù)。
Tips
不要擔(dān)心這個會讓你的程序變胖!es6-promise-always非常小。剛開始實現(xiàn)時always時,走錯了方向,辛好迷途知返。github地址:https://github.com/wendux/es6-promise-always
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用JavaScript實現(xiàn)node.js中的path.join方法
Node.JS中的 path.join 非常方便,能直接按相對或絕對合并路徑,有時侯前端也需要這種方法,如何實現(xiàn)呢?感興趣的朋友跟隨腳本之家小編一起看看吧2018-08-08微信小程序事件點擊跳轉(zhuǎn)頁面的五種方法小結(jié)
本文主要介紹了微信小程序事件點擊跳轉(zhuǎn)頁面的五種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Javascript浮點數(shù)乘積運算出現(xiàn)多位小數(shù)的解決方法
這篇文章主要介紹了Javascript浮點數(shù)乘積運算出現(xiàn)多位小數(shù)的解決方法,需要的朋友可以參考下2014-02-02將input框中輸入內(nèi)容顯示在相應(yīng)的div中【三種方法可選】
本篇文章主要介紹了在input框中輸入內(nèi)容,會相應(yīng)的顯示在下面的div中的不同做法:js方法;jQuery方法;AngularJs方法,具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05JavaScript數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組的表示方法示例
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組的表示方法,從數(shù)據(jù)結(jié)構(gòu)線性表的角度分析了數(shù)組的原理并結(jié)合實例形式分析了javascript數(shù)組的定義與使用方法,需要的朋友可以參考下2017-04-04