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

相关推荐
mCell16 分钟前
使用 useSearchParams 同步 URL 和查询参数
前端·javascript·react.js
mCell2 小时前
前端路由详解:Hash vs History
前端·javascript·vue-router
海上彼尚2 小时前
无需绑卡的海外地图
前端·javascript·vue.js·node.js
1024肥宅2 小时前
手写 call、apply、bind 的实现
前端·javascript·ecmascript 6
xlq223223 小时前
22.多态(上)
开发语言·c++·算法
666HZ6663 小时前
C语言——高精度加法
c语言·开发语言·算法
科杰智能制造3 小时前
纯前端html、js实现人脸检测和表情检测,可直接在浏览器使用
前端·javascript·html
星释3 小时前
Rust 练习册 100:音乐音阶生成器
开发语言·后端·rust
每天吃饭的羊3 小时前
组件库的有些点击事件是name-click这是如何分装de
前端·javascript·vue.js
x***01063 小时前
SpringSecurity+jwt实现权限认证功能
android·前端·后端