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

相关推荐
不简说几秒前
史诗级更新!sv-print虽然不是很强,但却是很能打的设计器组件
前端·产品
用户95251151401551 分钟前
最常用的JS加解密场景MD5
前端
Hilaku2 分钟前
“虚拟DOM”到底是什么?我们用300行代码来实现一个
前端·javascript·vue.js
阿猿收手吧!4 分钟前
【计算机网络】HTTP1.0 HTTP1.1 HTTP2.0 QUIC HTTP3 究极总结
开发语言·计算机网络
JAVA学习通4 分钟前
图书管理系统(完结版)
java·开发语言
打好高远球8 分钟前
mo契官网建设与SEO实践
前端
paishishaba11 分钟前
处理Web请求路径参数
java·开发语言·后端
七七七七0712 分钟前
C++类对象多态底层原理及扩展问题
开发语言·c++
神仙别闹13 分钟前
基于Java+MySQL实现(Web)可扩展的程序在线评测系统
java·前端·mysql