听说,你的当前页面还会提示上个页面的错误信息

161 阅读1分钟

在我们日常开发过程中,尤其是前端,我们需要给用户反馈操作结果,例如删除成功,创建完成等等,当然也有报错的信息,比如网络异常,操作失败等等...

一个页面往往请求不止一个接口,在最糟糕的情况,后台的接口全部异常或超时,此时当用户切换到别的页面还会bang bang bang的弹上个页面的错误提示..

噩梦啊。。。

作为一个优秀的前端,这种事情怎么可能容忍???

接下来,我们一步步,消灭它!!!!!

  • //request请求文件
    service.interceptors.request.use(  
        config => {       
            config.cancelToken = new axios.CancelToken(function (cancel) {      
                store.commit('request/PUSHREQS',{        
                    cancelToken: cancel      })    
                });    
        return config;  
    }

  • //store
    const state = {  
        cancelReqArr: [], // 取消请求数组
    }
    const mutations = {  
        PUSHREQS(state, payload){    
            state.cancelReqArr.push(payload.cancelToken);      },  
        CLEARREQS({cancelTokenArr}){    
            cancelReqArr.forEach(() => {});    
            cancelTokenArr = [];  
        }
    }
    export default {  
        namespaced: true,  
        state,  
        mutations
    }

  • //路由
    router.beforeEach(async (to, from, next) => {  
        store.commit('request/CLEARREQS'); //取消请求
        ...
    }

好了到此就搞定了,有别的办法的小伙伴,请积极举手🙋哦~~~