部分代码如下:
const axiosAPI = axios.create({
baseURL: GlobalPath.ajaxurl,
timeout: 8000,
responseType: "json",
withCredentials: false,
validateStatus: function (status) {
return (status >= 200 && status < 300) || status == 304
},
cancelToken: new axios.CancelToken(function (c) {
cancel = c
}),
});
axiosAPI.interceptors.request.use(config => {
let startTime = +new Date();
if (axiosPromiseObj[config.url] && deepCompare(config.data,axiosPromiseObj["data"]) && startTime - endTime < 500){
axiosPromiseObj[config.url](); //执行取消请求操作
axiosPromiseObj[config.url] = cancel;
} else {
axiosPromiseObj[config.url] = cancel;
axiosPromiseObj["data"] = config.data;
}
}
发送网络请求,做了避免重复点击的处理,如果500ms内重复点击了就取消本次请求(deepCompare深度比较了两次数据是否一致),问题是:当取消了本次请求后,发现以后所有的请求都不管用了。请大神帮忙解答下,十分感谢!### 问题描述
你用的是同一个
cancel
这个
cancel
只能用一次 用第二次要重新new
你这个后面用的都是前一个用过的 直接抛异常了可以做一个类似的封装