使用axios+vue在离开页面时中断网络请求

发布时间 2023-03-22 21:15:53作者: ZihangChu

最近做到一个需求需要在离开页面时中断未完成的网络请求

第一步:

引入axios和CancelToken实例子

import axios from 'axios'
const CancelToken = axios.CancelToken

第二步:在封装好的接口方法中加入cancelToken配置属性,并且传入this对象

export function getListWaveformDat(data,that){
    return request({
        url:'/vc/deviceItemData/listWaveformData',
        method:'post',
        timeout: 20000,
        data:data,
        cancelToken: new CancelToken((c) => {
            that.cancel = c
          })//加入的cancelToken属性
    })
}

 

第三步:离开页面时出发取消请求的方法
  beforeDestroy() {
   if(this.cancel){
    this.cancel();

   }
  },

观察网络请求可以发现请求被取消了