axios取消请求

1.使用CancelToken:

TypeScript 复制代码
class RequestHttp {
	service: AxiosInstance;
	public constructor(config: AxiosRequestConfig) {
		// 实例化axios
		this.service = axios.create(config);

		/**
		 * @description 请求拦截器
		 * 客户端发送请求 -> [请求拦截器] -> 服务器
		 */
		this.service.interceptors.request.use(
			(config: any) => {
				if (!getUrlParams("id")) {
					config["cancelToken"] = new axios.CancelToken(function (cancel) {
						cancel("当前URL中未携带id参数,请求已被取消");
					});
				}
				return config;
			},
			(error: AxiosError) => {
				return Promise.reject(error);
			}
		);
	}
}

export default new RequestHttp(config);

2.使用AbortController

javascript 复制代码
class RequestHttp {
	service: AxiosInstance;
	public constructor(config: AxiosRequestConfig) {
		// 实例化axios
		this.service = axios.create(config);

		/**
		 * @description 请求拦截器
		 * 客户端发送请求 -> [请求拦截器] -> 服务器
		 */
		this.service.interceptors.request.use(
			(config: any) => {
				if (!getUrlParams("id")) {
					const abortController = new AbortController();
					config.signal = abortController.signal;
					abortController.abort("当前URL中未携带id参数,请求已被取消");
				}
				return config;
			},
			(error: AxiosError) => {
				return Promise.reject(error);
			}
		);
	}
}

export default new RequestHttp(config);
相关推荐
LinXunFeng3 分钟前
Flutter 拖拉对比组件,换装图片前后对比必备
前端·flutter·开源
BD_Marathon4 分钟前
【PySpark】安装测试
前端·javascript·ajax
stu_kk12 分钟前
Ecology9明细表中添加操作按钮与弹窗功能技术分享
前端·oa
dkgee14 分钟前
如何禁止Chrome的重新启动即可更新窗口弹窗提示
前端·chrome
霜绛31 分钟前
C#知识补充(一)——ref和out、成员属性、万物之父和装箱拆箱、抽象类和抽象方法、接口
开发语言·笔记·学习·c#
天若有情67337 分钟前
新闻通稿 | 软件产业迈入“智能重构”新纪元:自主进化、人机共生与责任挑战并存
服务器·前端·后端·重构·开发·资讯·新闻
T.Ree.40 分钟前
cpp_list
开发语言·数据结构·c++·list
laocooon52385788642 分钟前
C++ 图片加背景音乐的处理
开发语言·c++
鱼干~42 分钟前
electron基础
linux·javascript·electron
香香爱编程43 分钟前
electron对于图片/视频无法加载的问题
前端·javascript·vue.js·chrome·vscode·electron·npm