1. 程式人生 > >always方法 es6-promise-always

always方法 es6-promise-always

ES6添加了Promise物件,成功時在then中處理,失敗則在catch中處理,但有時候,我們需要在無論成功或失敗時都要做一些事,比如隱藏loading, 記錄日誌等等,

下面我們以瀏覽器端ajax請求為例,我們使用axios(它是基於Promise的):

 

1

2

3

4

5

6

7

8

9

axios.get("/").then(()=>{

 //處理邏輯

 ...

 console.log("請求結束")

 hideLoading();

}).catch(()=>{

 

console.log("請求結束")

 hideLoading();

})

這樣的程式碼, 很冗餘。每到這個時候都有點懷念jQuery:

 

1

2

3

4

5

6

$.get("/").done(()=>{

 //處理邏輯

}).always(()=>{

 console.log("請求結束")

 hideLoading();

})

es6-promise-always正是對ES6的功能做了一個擴充,使其支援always,並同時支援node和browser.

使用

1.安裝

1

npm install es6-promise-always --save

2.引入使用

1

2

3

4

5

6

7

require("es6-promise-always")

axios.get("/").then(()=>{

 //處理邏輯

}).always(()=>{

 console.log("請求結束")

 hideLoading();

})

always(data, error)

  • data: resolve的資料。
  • error: reject的資料。