axios怎么 同时取消多个请求
在axios的文档里有这么一句话 可以使用同一个 cancel token 取消多个请求,但是文档没有给出同时取消多个请求的例子,请问这个地方如何使用?
https://www.kancloud.cn/yunye...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在axios的文档里有这么一句话 可以使用同一个 cancel token 取消多个请求,但是文档没有给出同时取消多个请求的例子,请问这个地方如何使用?
https://www.kancloud.cn/yunye...
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
在axios封装那里做操作
// 取消重复请求
let pending = []; //声明一个数组用于存储每个ajax请求的取消函数和ajax标识
let cancelToken = axios.CancelToken;
let removePending = (config) => {
for(let p in pending){
if(pending[p].u === config.url + '&' + config.method) { //当当前请求在数组中存在时执行函数体
pending[p].f(); //执行取消操作
pending.splice(p, 1); //把这条记录从数组中移除
}
}
}
removePending(config); //在一个ajax发送前执行一下取消操作
config.cancelToken = new cancelToken((c)=>{
// // 这里的ajax标识我是用请求地址&请求方式拼接的字符串,当然你可以选择其他的一些方式
pending.push({ u: config.url + '&' + config.method, f: c });
store.commit('pushToken', {cancelToken: cancel})
});
你给多个请求赋值同一个 cancel token,然后在调用 cancel 时,使用同一个 token 的在途请求全部都会取消。