axios取消重复请求

113 阅读1分钟
取消:
   1:取消同一接口请求
      a:定义一个数据存储所有取消的方法 arr=[]
      b:在请求拦截加
        config.cancelToken=new axios.CancelToken((cancel)=>{
        arr.push({
          fn:cancel,
          url:config.url,
          method:config.method
        })})
      c:在存储前取消同一接口请求
        arr=arr.filter(item=>{
          if(item.url===config.url && item.method===config.method){
            item.fn()
            return false
          }else{
            return true
          }
        })




   2:页面切换时取消所有请求
     export function cancelAll(){
       arr=arr.filter(item=>{        
            item.fn()
            return false        
        })
     }
     在前置守卫 调用触发:
     import {cancelAll} from '@/utils/request'
     router.beforeEach(()=>{
       cancelAll()
     })
*/