当前位置: 首页 > news >正文

axios竟态问题

竟态问题

在我们日常开发经常遇到一些竟态问题

例子1

现象1

表格分页,如果设置请求loading,
先切换到分页第99页,迅速在又切换到第1页,最后列表显示的是第99页数据。

原因

由于第99页请求数据花费时间可能500ms,第1页数据只需要100ms,第1页数据请求比较快,第99页数据返回慢,所以第99页数据会覆盖第一页数据。

现象2

表单具有提交按钮,如果没有设置提交请求loading时,连续点击两次,就会触发两次表单提交

原因

请求没有做拦截,第一次请求没有结束,又能触发请求

axios中如何简单防止竟态问题

【注】这里只是简单做了防止重复点击

在axios 请求拦截器中可以设置 cancelToken

import axios from 'axios';const cusAxiosFERD = axios.create({});
const cancelToken = axios.CancelToken;
const source = cancelToken.source();
const cacheRequest = {};
// 需要处理竞态问题的 接口
const urls = ['/xxx'];
cusAxiosFERD.interceptors.request.use( (config) => {const curUrl = config.url;if(urls.some(u=>curUrl.indexOf(u) > -1 ) && config.headers.isLimit){cacheRequest[curUrl] && cacheRequest[curUrl]();config.cancelToken = new axios.CancelToken(function executor(c) {cacheRequest[curUrl]  = c;})}return config;
}
http://www.lryc.cn/news/474142.html

相关文章:

  • 如何批量注册多个Outlook邮箱账号并避免关联
  • 如何在安卓設備上設置全局代理?
  • 操作系统实验记录
  • FastAPI 路径参数详解:动态路径与数据校验的灵活实现
  • 【STM32】SD卡
  • 我一口气记录下整个接口自动化测试过程!
  • 【VS中Git同步提交 报错:访问.vs/FileContentIndex/xxx.vsidx权限不允许】
  • Linux下Nginx的安装与使用
  • 飞机布雷盖航程公式
  • 在K8s平台部署个人博客
  • git入门教程10:git性能优化
  • Redis(2):内存模型
  • 深入解析Diffusion和AsymmDiT:Mochi 1的高效AI视频生成之路
  • VMware capacity mismatch for disk错误解决办法:kb-vuln-1靶机
  • Java Collection/Executor LinkedTransferQueue 总结
  • 阿拉伯国家本地化测试的特点
  • 申请前必知!关于「美国绿卡」的28个常见问题汇总!
  • 2024年十款超好用的图纸防泄密软件精选,十款优秀的图纸防泄密软件推荐
  • 数据库锁机制
  • 呼叫中心系统如何选型?
  • Ubuntu 22.04安装部署
  • KINGBASE部署
  • 探索 ONLYOFFICE:开源办公套件的魅力
  • 如何保护网站安全
  • 抖音矩阵系统开发的技术框架解析,支持OEM
  • python偏相关分析
  • 低代码用户中心:简化开发,提升效率的新时代
  • ThingsBoard规则链节点:Math Function节点详解
  • echarts地图,柱状图,折线图实战
  • 客服宝快捷回复软件:客服工作的得力助手