axios怎么中断请求,axios简单请求和复杂请求

  axios怎么中断请求,axios简单请求和复杂请求

  在项目中,经常会出现多个请求会被连续发送的场景,异步会导致最终的结果不是我们想要的,也会对性能产生很大的影响。本文主要介绍axios取消请求和避免重复请求的相关信息。有需要的可以参考一下。

  

目录

  产地

  现状

  取消取消令牌的请求

  修改的请求方法

  避免重复请求。

  摘要

  

起源

  某个页面需要下载所有数据的功能,导致下载数据量大,界面延迟长。

  页面上加载的初始数据量很长,但单次检索很快。加载初始数据时,检索界面返回,后续初始数据的返回覆盖了检索数据的显示。

  这些情况要求我们:

  可以手动取消/终止请求。

  一些页面接口一次只能有一个请求。

  

现状

  系统基于vue-element-admin的二次开发,vue-element-admin是老歌华裤衩的开源,其中request是axios,封装request.js的关键代码如下:

  //创建axios实例

  const service=axios.create({

  BASE url:process . env . vue _ APP _ BASE _ API,//url=基本URL请求URL

  withCredentials: true,//跨域请求时发送cookies

  超时:500000,//请求超时

  transform request:[函数(数据){

  //对数据进行任意转换处理。

  return Qs.stringify({

  .数据

  },

  //数组的转换

  { arrayFormat:括号 })

  }]

  })

  //请求拦截器

  service . interceptors . request . use(

  配置={

  //在发送请求之前做一些事情

  if (store.getters.token) {

  //让每个请求携带令牌

  //[X-Token]是一个自定义头键

  //请根据实际情况修改

  config . headers[ token ]=getToken()

  }

  返回配置

  },

  错误={

  //对请求错误做些什么

  console.log(错误)//用于调试

  退货承诺.拒绝(错误)

  }

  )

  发起请求的方法:

  导出函数remoteApi(数据){

  退货请求({

  URL:“/API”,

  方法: post ,

  数据

  })

  }

  

取消请求 cancelToken

  其正式文件:取消:

  const CancelToken=axios。CancelToken

  const source=cancel token . source();

  axios.get(/user/12345 ,{

  cancelToken: source.token

  }).catch(函数(抛出){

  if (axios.isCancel(thrown)) {

  console.log(请求已取消,thrown . message);

  }否则{

  //处理错误

  }

  });

  axios.post(/user/12345 ,{

  名称:“新名称”

  }, {

  cancelToken: source.token

  })

  //取消请求(message参数是可选的)

  source.cancel(用户取消了操作。);

  

修改后的请求方法

  导出函数remoteApi(data,cancelToken) {

  退货请求({

  URL:“/API”,

  方法: post ,

  取消Token,

  数据

  })

  }

  当实际被请求时,创建cacelToken:

  //在组件方法内

  this . cancel token=cancel token . source()

  remoreApi(data,this.cancelToken)。然后(.).接住(.).最后(.)

  当您需要取消请求时,执行:

  //在组件方法内

  This.cancelToken.cancel(“取消下载”)

  

避免重复请求

  避免一个接口重复请求,以免延迟长的接口返回的数据覆盖另一个接口返回的数据,造成数据显示错误。这个想法也相对简单,使用一个全局映射来存储请求ID和相应的cancelToken。请求,在发起请求之前,根据请求标识符,调用cancelToken对应的cancel方法,然后发出新的满足条件的请求。

  

总结

  这就是这篇关于axios取消请求和避免重复请求的文章。有关axios取消请求的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: