axios学习笔记(二)

AI-摘要
DeepSeek GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
axios学习笔记(二)
Jie响应结构
一个请求的响应包含以下信息。
1 | { |
当使用 then 时,您将接收如下响应:
1 | axios.get("/user/12345").then(function (response) { |
当使用 catch,或者传递一个rejection callback作为 then 的第二个参数时,响应可以通过 error 对象被使用,正如在错误处理部分解释的那样。
默认配置
您可以指定默认配置,它将作用于每个请求。
全局 axios 默认值
1 | axios.defaults.baseURL = "https://api.example.com"; |
自定义实例默认值
1 | // 创建实例时配置默认值 |
配置的优先级
配置将会按优先级进行合并。它的顺序是:在 lib/defaults.js 中找到的库默认值,然后是实例的 defaults 属性,最后是请求的 config 参数。后面的优先级要高于前面的。下面有一个例子。
1 | // 使用库提供的默认配置创建实例 |
拦截器
在请求或响应被 then 或 catch 处理前拦截它们。
1 | // 添加请求拦截器 |
如果你稍后需要移除拦截器,可以这样:
1 | const myInterceptor = axios.interceptors.request.use(function () { |
可以给自定义的 axios 实例添加拦截器。
1 | const instance = axios.create(); |
错误处理
1 | axios.get("/user/12345").catch(function (error) { |
使用 validateStatus 配置选项,可以自定义抛出错误的 HTTP code。
1 | axios.get("/user/12345", { |
使用 toJSON 可以获取更多关于 HTTP 错误的信息。
1 | axios.get("/user/12345").catch(function (error) { |
取消请求
AbortController
从 v0.22.0 开始,Axios 支持以 fetch API 方式—— AbortController 取消请求:
1 | const controller = new AbortController(); |
. 如何取消未完成的请求?
- 当配置了 cancelToken 对象时, 保存 cancel 函数
(1) 创建一个用于将来中断请求的 cancelPromise
(2) 并定义了一个用于取消请求的 cancel 函数
(3) 将 cancel 函数传递出来 - 调用 cancel()取消请求
(1) 执行 cacel 函数, 传入错误信息 message
(2) 内部会让 cancelPromise 变为成功, 且成功的值为一个 Cancel 对象
(3) 在 cancelPromise 的成功回调中中断请求, 并让发请求的 proimse 失败,
失败的 reason 为 Cancel 对象
Comment
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果