在axios的文档里有这么一句话 可以使用同一个 cancel token 取消多个请求,但是文档没有给出同时取消多个请求的例子,请问这个地方如何使用?
https://www.kancloud.cn/yunye...
在axios的文档里有这么一句话 可以使用同一个 cancel token 取消多个请求,但是文档没有给出同时取消多个请求的例子,请问这个地方如何使用?
https://www.kancloud.cn/yunye...
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
在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})
});