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() 方法来取消所有未完成的请求。

相关推荐
ktkiko115 分钟前
顶层架构 - 消息集群推送方案
java·开发语言·架构
楠奕5 分钟前
python中使用neo4j
开发语言·python·neo4j
bloglin9999911 分钟前
npm和nvm和nrm有什么区别
前端·npm·node.js
南斯拉夫的铁托17 分钟前
labelimg安装及使用指南(yolo)
开发语言·python·yolo
2501_9102275426 分钟前
web3 前端常见错误类型以及错误捕获处理
前端·web3
六bring个六40 分钟前
文件系统交互实现
开发语言·c++·qt·交互
jingyu飞鸟1 小时前
Centos7系统(最小化安装)安装zabbix7版本详细文章、nginx源代码配置、php源代码、mysql-yum安装
开发语言·php
dhxhsgrx1 小时前
PYTHON训练营DAY27
开发语言·python
小山菌1 小时前
mac中加载C++动态库文件
开发语言·c++·macos
哎哟喂_!1 小时前
Node.js 同步加载问题详解:原理、危害与优化策略
前端·chrome·node.js