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