vue路由跳转后,终止上一个页面正在请求的资源

实现在路由跳转后,把上一个页面正在请求的资源关闭。

  1. 在发起请求时拦截请求加入代码
javascript 复制代码
// 拦截请求
instance.interceptors.request.use((req) => {
        req.cancelToken = new axios.CancelToken(cancel => {
            if (!window._axiosPromiseArr){
                window._axiosPromiseArr = [];
            }
            window._axiosPromiseArr.push({cancel});
        });
});
  1. 在全局路由跳转前写入代码
javascript 复制代码
router.beforeEach((to, from, next) => {
    console.log('[访问路由]' + (to.name || to.path))
    if (window._axiosPromiseArr) {
        window._axiosPromiseArr.forEach((ele, index) => {
            // 路由跳转前,终止上一个页面正在请求的内容
            ele.cancel();
            delete window._axiosPromiseArr[index];
        })
    }
 return next();
})
相关推荐
李剑一6 分钟前
面试第一关!面试官:讲一下事件循环机制,宏&微任务,还有渲染时机
前端·面试
如果超人不会飞7 分钟前
TinyVue图标使用完全指南
vue.js
shuoshuohaohao9 分钟前
《CSS》
前端·css
西部荒野子10 分钟前
Zustand 状态管理规范:别让轻量状态变成隐形通知风暴
前端·javascript
之歆10 分钟前
Day03_ES6 深度解析与实战应用:运算符、Symbol、Class、集合与迭代协议
前端·ecmascript·es6
Carson带你学Android20 分钟前
Kotlin放大招!官方 Skills 直接喂出「专家级」代码
android·前端·kotlin
之歆21 分钟前
Day04_ES6完全指南:从入门到精通的现代化JavaScript开发
前端·javascript·es6
Coffeeee25 分钟前
一个kotlin的Smart cast导致的编译问题
android·前端·kotlin
CodeSheep32 分钟前
胡彦斌都开始苦修Vibe Coding,还上架App Store,都卷到编程来了吗?
前端·后端·程序员