axios cancelToken原理解析

本文解析axios中CancelToken的工作原理,包括如何创建和使用CancelToken,以及如何执行取消请求。介绍了CancelToken.source的作用,并提供了其他取消Promise的方法,如Promise.race()。
摘要由CSDN通过智能技术生成

参考博客:
https://blog.csdn.net/sinat_38959166/article/details/104173187
https://www.jianshu.com/p/e99cbfbce7e2

前言

最近在看一些库的原理,正好看到了axios cancel Promise的相关文章,理解后,以免忘记,写一篇博客记录一下。

用法

1.使用 CancelToken.source 工厂方法创建 cancel token

// CancelToken是一个构造函数,用于创建一个cancelToken实例对象
// cancelToken实例对象包含了一个promise属性,值为可以触发取消请求的一个promise
const CancelToken = axios.CancelToken;
// 执行source()得到的是一个包含了cancelToken对象和一个取消函数cancel()的对象
// 即 source = {token: cancelToken对象, cancel: 取消函数}
const source = CancelToken.source();

// 在请求的配置中配置cancelToken,那么这个请求就有了可以取消请求的功能
axios.get('/data', {
   
  cancelToken: source.token
}).catch(function(thrown) {
   
  if (axios.isCancel(thrown)) {
   
    console.log('Request canceled', thrown.message);
  } else {
   
     // 处理错误
  }
});

2.通过传递一个 executor 函数到 CancelToken 的构造函数来创建 cancel token

const CancelToken = axios.CancelToken;
let cancel;

axios.get('/data', {
   
  cancelToken: new CancelToken(function executor(c) {
   
    // executor 函数接收一个 cancel 函数作为参数
    // 把cancel函数传递给外面,使得外面能控制执行取消请求
    cancel = c;
  })
});

// cancel the request
cancel();

我的使用


                
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值