Axios 内容
- 主要思路
- 拦截器
- 取消
- Promise: Axios 对 Promise 的利用还是蛮极致的
- 利用 then 链来串联自己的请求拦截器 => 请求 => 响应拦截器链,进而有序执行
- 利用 Promise 的异步思想,分离 resolve 方法,提供给外部主动取消请求的能力
文章图片
其他
- xhr/http 的封装: headers(Authorization: btoa/atob), buildFullPath, onloadend/onabort/onerror/ontimeout/progress
- enhanceError: 通常 js 的异常报错信息较少,Axios 自己针对 isAxiosError 的报错封装了较多信息,可以通过 toJSON 获取更多 HTTP 错误的信息
- 工具函数: 小而美,命名
- 请求与响应体的转化: 不用我们自己处理大部分场景请求体的 Content-Type 及返回体的数据格式,也允许开发者自定义
- AbortController: 提供开发者自定义一个阻止请求的控制器,类似 fetch(url, { signal })