axios取消请求方式

axios是基于Promise的HTTP客户端,目前在客户端被大量广泛应用。axios的底层也是利用XMLHttpRequest对象来封装的。

我们都清楚在XMLHttpRequest对象中可以通过

let xhr = new XMLHttpRequest();
xhr.open('GET or POST', url);
xhr.send();

// 取消请求使用 xhr.abort()

在axios客户端中有两种取消当前请求的方式:

第一种通过其内部提供的CancelToken来取消

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

axios.post(url, {
    data
}, {
    cancelToken: source.token
}
)

// 调用source.cancel()取消请求(可以传参数)

当然,我们也可以通过CancelToken的构造函数方式取消请求

let CancelToken = axios.CancelToken;

let cancel = null;

axios.get(url, {
    cancelToken: new CancelToken(function executor(c) {
        cancel = c;
    })
})

// 取消请求cancel()
当然我们可以把cancel函数挂载到window对象上,在需要取消请求的组建或页面中调用window.acncel()

具体CancelToken实现方式,有兴趣的小伙伴可以看一下源码。

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小生鲜

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值