在我们日常开发过程中,尤其是前端,我们需要给用户反馈操作结果,例如删除成功,创建完成等等,当然也有报错的信息,比如网络异常,操作失败等等...
一个页面往往请求不止一个接口,在最糟糕的情况,后台的接口全部异常或超时,此时当用户切换到别的页面还会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'); //取消请求 ... }
好了到此就搞定了,有别的办法的小伙伴,请积极举手🙋哦~~~