Axios

内容

  1. 主要思路
  2. 拦截器
  3. 取消
  4. Promise: Axios 对 Promise 的利用还是蛮极致的

    • 利用 then 链来串联自己的请求拦截器 => 请求 => 响应拦截器链,进而有序执行
    • 利用 Promise 的异步思想,分离 resolve 方法,提供给外部主动取消请求的能力

origin_img_v2_ba56c270-217c-4b2c-9b54-1b2b66d08dcg.png

其他

  1. xhr/http 的封装: headers(Authorization: btoa/atob), buildFullPath, onloadend/onabort/onerror/ontimeout/progress
  2. enhanceError: 通常 js 的异常报错信息较少,Axios 自己针对 isAxiosError 的报错封装了较多信息,可以通过 toJSON 获取更多 HTTP 错误的信息
  3. 工具函数: 小而美,命名
  4. 请求与响应体的转化: 不用我们自己处理大部分场景请求体的 Content-Type 及返回体的数据格式,也允许开发者自定义
  5. AbortController: 提供开发者自定义一个阻止请求的控制器,类似 fetch(url, { signal })

原创图解,转载备注。


Huooo
328 声望33 粉丝

Coding happily and friendly and elegantly.


« 上一篇
Chrome的同源