前端热门技术axios详细讲解(二)——取消异步请求

上一篇总结了axios的基本使用,请点击这里
今天呢,我们来讲一下 如何取消axios的异步请求

一、AbortController

从 v0.22.0 开始,Axios 支持 AbortController 以 fetch API 的方式取消请求:

const controller = new AbortController();

axios.get('/foo/bar', {
   signal: controller.signal
}).then(function(response) {
   //...
});
// cancel the request
controller.abort()

二、CancelToken取消请求

使用 CancelToken 取消请求的方法在v0.22.0已废弃并不被推荐使用了。但我们开发中有的项目使用的版本还比较旧,是0.22.0以前的版本,所以,我们维护和开发老项目时,还是要了解该用法的。
官方原文:

You can also cancel a request using a CancelToken.
The axios cancel token API is based on the withdrawn cancelable promises proposal.
This API is deprecated since v0.22.0 and shouldn’t be used in new projects

方法一:
可以使用 CancelToken.source 工厂创建取消令牌

const CancelToken = axios.CancelToken;
const source = CancelToken.source();

axios.get('/user/12345', {
  cancelToken: source.token
}).catch(function (thrown) {
  if (axios.isCancel(thrown)) {
    console.log('Request canceled', thrown.message);
  } else {
    // handle error
  }
});

axios.post('/user/12345', {
  name: 'new name'
}, {
  cancelToken: source.token
})

// cancel the request (the message parameter is optional)
source.cancel('Operation canceled by the user.');

方法二:
还可以通过将执行器函数传递给 CancelToken 构造函数来创建取消CancelToken

const CancelToken = axios.CancelToken;
let cancel;
axios.get('/user/12345', {
  cancelToken: new CancelToken(function executor(c) {
    // An executor function receives a cancel function as a parameter
    cancel = c;
  })
});
// cancel the request
cancel();

这里推荐看GitHub或axios的官网,中文网有些滞后,有的内容不全。不过大家根据自己喜好去查阅~

axios 是一个基于 Promise 的 HTTP 客户端,用于发送异步请求。它可以在浏览器和 Node.js 环境中使用。 使用 axios 发送异步请求的基本步骤如下: 1. 首先,你需要在项目中安装 axios。你可以通过 npm 或者 yarn 进行安装: ``` npm install axios ``` 或者 ``` yarn add axios ``` 2. 在需要发送异步请求的文件中,引入 axios 模块: ```javascript import axios from 'axios'; ``` 3. 然后,使用 axios 发送请求。axios 提供了多个方法来发送不同类型的请求,比如 GET、POST 等。以下是一个简单的 GET 请求示例: ```javascript axios.get('https://api.example.com/data') .then(response => { // 请求成功时的处理逻辑 console.log(response.data); }) .catch(error => { // 请求失败时的处理逻辑 console.error(error); }); ``` 在这个示例中,我们使用 `axios.get` 方法发送一个 GET 请求到指定的 URL,并在请求成功时打印出响应数据。如果请求失败,将会在控制台输出错误信息。 除了 GET 请求外,axios 还提供了其他方法,比如 `axios.post`、`axios.put`、`axios.delete` 等,用于发送不同类型的请求。你可以根据实际需求选择适合的方法。 此外,你还可以通过设置请求配置对象来自定义请求参数、请求头等。axios 还支持拦截器、取消请求等高级功能。具体的使用方法可以参考 axios 的官方文档。 希望对你有帮助!如果你还有其他问题,可以继续提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清颖~

您的鼓励让我们一起进步,加油!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值