vue 使用axios在跳转下一页面前取消所有请求

const CANCEL_TOKEN = axios.CancelToken;

Vue.prototype.$httpRequestList = [];	//管理所有请求中断方法的集合

axios({
    url: url,
    methods: 'POST',
    data: options,
    cancelToken: new CANCEL_TOKEN(c => { 		
        Vue.prototype.$httpRequestList.push(c);	//中断请求时,将对应中断方法存进集合
      })
}).then(res => {}).catch(err => {
  if (err.message == "interrupt") {
       console.log('已中断请求');
        return;
      }
})
/**
* 使用路由守卫,在切换页面前中断上一个页面的所有请求
*/
router.beforeEach((to, from, next) => {   
  if(Vue.$httpRequestList.length>0){      //检查是否有需要中断的请求
      Vue.$httpRequestList.forEach(item=>{//遍历,执行中断方法并传入中断信息
          item('interrupt');	
      })
  }
  next();
});

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值