vue之中 axios的取消 上一次等待的请求(同一个请求,不同参数)
拦截器里统一处理取消重复请求
import axios from "axios";
window.axiosCancel = []
Axios.interceptors.request.use(config => {
return config
config.cancelToken = new axios.CancelToken(cancel => {
window.axiosCancel.push({
cancel
})
},function(error) {
return Promise.reject(error)
});
Axios.interceptors.response.use(res => {
},function axiosRetryInterceptor(res) {
return Promise.reject(res )
});
export default Axios
页面使用
methods:{
cancel(){
let cancelArr = window.axiosCancel;
cancelArr.forEach((ele, index) => {
ele.cancel("取消了请求")
delete window.axiosCancel[index]
})
},
getList(){
this.cancel()
axios.post(..)
}
}