应用场景:当切换路由页面,上次的ajax请求,应该终止
1.//请求拦截器
window._axiosPromiseArr = [] // axios中设置放置要取消的对象
axios.interceptors.request.use(config => {
config.cancelToken = new axios.CancelToken(cancel => {
window._axiosPromiseArr.push({ cancel })
})
return config
}, error => {
return Promise.reject(error)
})
2.// 进入路由钩子拦截时候,取消保存的_axiosPromiseArr
router.beforeEach((to, from, next) => {
window._axiosPromiseArr.forEach((ele,index) => {
ele.cancel() // 路由跳转之前,清空(终止)上一个页面正在请求的内容
// 清空请求的参数 清空请求的参数
delete window._axiosPromiseArr[index]
})
})
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u010963051/article/details/103183415