axios本请求被取消后,如何再次唤醒请求
部分代码如下:
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深度比较了两次数据是否一致),问题是:当取消了本次请求后,发现以后所有的请求都不管用了。请大神帮忙解答下,十分感谢!### 问题描述
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你用的是同一个
cancel
这个
cancel
只能用一次 用第二次要重新new
你这个后面用的都是前一个用过的 直接抛异常了可以做一个类似的封装
我觉得避免重复提交应该是做防抖操作,而不是取消请求
这样写可以:
这样写不可以:
没天理啊....
我也遇到了同样问题 大佬你怎么觉得的
我的代码