axiso 拦截器
> let cancelToken = axios.CancelToken
const REQUEST_LIST = []
const removePending = config => {
for(let p in REQUEST_LIST){
if (REQUEST_LIST[p].u === config.url) {
REQUEST_LIST[p].f()
}
}
}
axios.interceptors.request.use(config => {
removePending(config) //在一个ajax发送前执行一下取消操作
config.cancelToken = new cancelToken(c => {
// 这里的ajax标识我是用请求地址&请求方式拼接的字符串,当然你可以选择其他的一些方式
REQUEST_LIST.push({
f: c,
u: config.url,
})
})
return config
}, error => {
return Promise.reject(error)
})
//添加响应拦截器
axios.interceptors.response.use(response=>{
return response
}, error => {})