RxJS
RxJS 中文文檔
RxJS github 位址
1. RxJS 是使用 Observables 的響應式程式設計的庫,它使編寫異步或基于回調的代碼更容易。
2. RxJS 的 Observable可以認為是加強版的Promise,它們之間是可以通過RxJS的API互相轉換的:
const observable = Observable.fromPromise(promise); // Promise轉為Observable
const promise = observable.toPromise(); // Observable轉為Promise
Axios
Axios 中文文檔
Axios github 位址
1. Axios 是一個基于 promise 的 HTTP 庫,可以用在浏覽器和 node.js 中。
2. Axios 特性
- 從浏覽器中建立 XMLHttpRequests
- 從 node.js 建立 http 請求
- 支援 Promise API
- 攔截請求和響應
- 轉換請求資料和響應資料
- 取消請求
- 自動轉換 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。