天天看点

前端网络请求: Axios + RxJS

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。