axios全局封装取消请求,你可以创建一个 Axios 实例,并为该实例配置默认的 CancelToken

js 复制代码
import axios from 'axios';  
  
// Axios 的 CancelToken  
const CancelToken = axios.CancelToken;  
  
// 创建一个 Axios 实例  
const instance = axios.create();  
  
// 用于存储所有的 cancel 函数  
const pendingRequests = new Set();  
  
// 添加请求配置  
instance.interceptors.request.use(config => {  
  // 为每个请求创建一个新的 cancelSource  
  const cancelSource = CancelToken.source();  
  pendingRequests.add(cancelSource.cancel);  
  config.cancelToken = cancelSource.token;  
  return config;  
});  
  
// 提供一个取消所有请求的方法  
instance.cancelAll = () => {  
  pendingRequests.forEach(cancel => cancel());  
  pendingRequests.clear();  
};  
  
export default instance;

可以在你的应用中使用这个封装过的 Axios 实例,并通过调用 instance.cancelAll() 方法来取消所有未完成的请求。

相关推荐
json{shen:"jing"}3 分钟前
js收官总概述
开发语言·python
froginwe116 分钟前
Java 文档注释
开发语言
Zsy_0510036 分钟前
【C++】stack、queue、容器适配器
开发语言·c++
一起努力啊~8 分钟前
算法刷题--栈和队列
开发语言·算法
万行9 分钟前
SQL进阶&索引篇
开发语言·数据库·人工智能·sql
打工的小王10 分钟前
java并发编程(六)CountDownLatch和回环屏障CyclicBarrier
java·开发语言
VT.馒头10 分钟前
【力扣】2694. 事件发射器
前端·javascript·算法·leetcode·职场和发展·typescript
星火开发设计13 分钟前
命名空间 namespace:解决命名冲突的利器
c语言·开发语言·c++·学习·算法·知识
小北方城市网14 分钟前
RabbitMQ 生产级实战:可靠性投递、高并发优化与问题排查
开发语言·分布式·python·缓存·性能优化·rabbitmq·ruby
life码农19 分钟前
HTML文本换行显示几种方法总结
前端·html