main.js
在路由拦截里面设置:路由切换的时候,当前页面的请求还未请求完 全部中断请求
router.beforeEach(async (to, from, next) => {
window.GlobalCancelReq = function (val = false) {
if (!val) {
if (window._axiosPromiseArr === undefined) {
window._axiosPromiseArr = []
}
// 循环缓存的请求 取消标识数组 取消所有关联的请求
window._axiosPromiseArr.forEach((ele, index) => {
// 失败函数中返回自定义错误信息
ele.cancel('请求取消')
delete window._axiosPromiseArr[index]
})
} else {
window._axiosPromiseArr = []
}
}
// 在其他页面 需要中断请求也可以直接调用 GlobalCancelReq()
GlobalCancelReq()
}