vue路由切换,终止正在请求的接口

应用场景与需求:

 1.当前页面在切换tab的时候会调用不同的接口,如果来回的快速点击那么就会在后台执行大量的接口,这种时候就需要我们手动的去清除请求

 2.vue路由快速切换,回继续执行上一个页面的接口,这种时候需要我们手动去清除请求

代码:

      let CancelToken = axios.CancelToken
      let self = this
      axios.get('http://120.26.63.68:8051/book/analyse/resources_analyse/get_chart/', {
        cancelToken: new CancelToken(function executor(c) {
          self.cancel = c // 这个参数 c 就是CancelToken构造函数里面自带的取消请求的函数,这里把该函数当参数用
        })
      }).then(res => {
        console.log(res)
      }).catch(err => {
        console.log(err,'错误')
      })
      setTimeout(function () {
        //只要我们去调用了这个cancel()方法,没有完成请求的接口便会停止请求
        self.cancel()
      }, 100)
原文地址:https://www.cnblogs.com/qiuchuanji/p/13984039.html