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