前端網路請求: Axios + RxJS
阿新 • • 發佈:2018-12-18
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 特性
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。