1. 程式人生 > >前端網路請求: Axios + RxJS

前端網路請求: Axios + RxJS

RxJS

1. RxJS 是使用 Observables 的響應式程式設計的庫,它使編寫非同步或基於回撥的程式碼更容易。

2. RxJS 的 Observable可以認為是加強版的Promise,它們之間是可以通過RxJS的API互相轉換的:

const observable = Observable.fromPromise(promise); // Promise轉為Observable
const promise = observable.toPromise(); // Observable轉為Promise

Axios

1. Axios 是一個基於 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中。

2. Axios 特性

  • 從 node.js 建立 http 請求
  • 攔截請求和響應
  • 轉換請求資料和響應資料
  • 取消請求
  • 自動轉換 JSON 資料
  • 客戶端支援防禦 XSRF

3. Axis 安裝、用法,詳細API 參照 Axios 中文文件

Axios + RxJS

1. Axios和RxJS均基於Promise,處理非同步和回撥更加優雅,編寫相關程式碼也更簡單。

2. 攔截器axios.interceptors,攔截request,全域性請求設定;攔截response,對data或error全域性處理。

3. 報錯處理清晰明瞭,interceptors處理全域性報錯(globalErrHandle);catch處理程式碼層報錯(cancel、requestErr、responseErr);subscribe處理業務層報錯(errorsHandle)。

4. axios 發起的請求可以主動取消,請求還可以設定超時處理。

5. axios 適應多端,瀏覽器、node.js、react-native、vue.js。