为啥会有这篇 ?

  • 一些同学说 想看 工作中常用的一些操作分享, 它来了

在一些场景下我们需要去重复请求接口 数据

经典场景

1. 多人点单 选择商品后需要 重复拉取 order 接口 获取最新订单信息
2. 审批状态比如多个人都在审批一个单 当一个人审批了 更改了审批状态 需要通知其他人
......

实现

  • 其实 实现轮询 非常 简单* 先给一个 最简单轮询版本```
    this.timer = setInterval(async () => {await this.getList()
    },2000)

// 然后在适当时机清楚(比如 离开页面)
clearInterval(this.timer)


* 看起来 非常 简单 问题是 setInterval 并不会自我清除`更优雅的方式`
--------* 这样的好处是 setTimeout 会在每次结束 清除自己 且在 恰当时机 执行 time = 0 , 此处需要了解一下 宏认为/微任务* 但 无法解决 等待轮询结果后再发请求```
this.timer = setInterval(() => {
setTimeout(()=> {
...
},0)
},2000)// 然后在适当时机清楚(比如 离开页面)
clearInterval(this.timer)
  • (条件 网络 low 3G模拟接口慢的情况 轮询1s 测试快速发请求情况)

这样实现后 大概是 这样

  • 我们可以 很明确的发现 前一条 没有请求结束 后一条请求 又跟上了* 会出现这样的情况

  • 出现多个地方 接口 报错 ! 非常 不 nice

再优雅一波

const STATUS_INTERVAL = 2 * 1000const queryOrderStatus = () => {this.timer = setTimeout(async () => {await xxxxxqueryOrderStatus();}, STATUS_INTERVAL);};queryOrderStatus();// 然后在适当时机清楚(比如 离开页面)
clearInterval(this.timer)
  • 实现效果

  • 有没有想过为啥 ? 递归 和 await 功效 good* 如果多个 请求 可叠加 / Promise.all(…)* 更多 技术实践 正在袭来 …

最后

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享

部分文档展示:



文章篇幅有限,后面的内容就不一一展示了

有需要的小伙伴,可以点下方卡片免费领取

【工作实践篇】等待轮询结果后再发请求相关推荐

  1. linux脚本能轮循吗,通过Linux定时任务实现定时轮询数据库及发送Http请求

    #通过Linux定时任务实现定时轮询数据库及发送Http请求 概述 有时需要临时增加一个定时任务(需要根据数据库查询结果然后发送HTTP请求),如果在项目中额外增加(Java+Spring+Quart ...

  2. 他读博期间连发3篇Science,28岁任武大教授后再发Nature!

    全世界只有3.14 % 的人关注了 爆炸吧知识 来源:募格课堂整合自武汉大学.武汉晚报.半月谈等 有这样一位学者,读博期间以一作身份发表3篇Science,28岁成为武汉大学化学与分子科学学院教授再发 ...

  3. python爬虫获取的网页数据为什么要加[0-[Python爬虫] 等待网页加载后再获取内容...

    0x0 背景 最近在学习Python爬虫的相关知识,主要是之前有一个小idea想要用Python实现,沉寂了一年,近期终于下定决心要利用假期时间首要解决此项任务,不然拖到最后都没完成,自己遗憾不说,还 ...

  4. spring中事务提交后再发MQ消息

    本篇博文记录一个小的知识点,在spring框架下的业务代码中同时有数据库操作,有MQ消息发送,怎么控制消息发送在事务提交之后,有问题可及时在本博客下留言,或者在个人博客留言 业务场景: 在一个加了事务 ...

  5. HDC.2019后再发力,AppGallery Connect服务新升级

    不久前,华为2019开发者大会在东莞松山湖圆满落,来自全球的1500多个合作伙伴.5000多名开发者汇聚一堂,共同探讨未来科技发展,其中华为应用市场AppGallery Connect服务也在大会上重 ...

  6. uni-app打包后不发请求的原因

    在开发uni-app的时候总是会出现各种奇怪的bug,就拿请求接口这块来说,真机调试和微信开发者工具都能正常发送请求,打包成apk后却失败了,为什么呢? 经过一番倒腾,才发现真机调试和微信开发者工具都 ...

  7. I/O控制方式——轮询,中断,DMA,通道

    转载自https://www.cnblogs.com/niuyourou/p/12588407.html 作为个人学习使用,如果侵权请联系我删除 I/O 设备是计算机的重要组成部分,介于处理器与 I/ ...

  8. 4.1.3 消费者轮询的流程

    4.1.3 消费者轮询的流程 按照消费者应用程序的示例,消费者订阅主题的下一步是"轮询".前面分析的准备t作(确保协调者存在,确保分配分区,更新拉取偏移量)都内置在轮询操作里,所以 ...

  9. 用了这么久配置中心,还不知道长轮询是什么?

    前言 传统的静态配置方式想要修改某个配置时,必须重新启动一次应用,如果是数据库连接串的变更,那可能还容易接受一些,但如果变更的是一些运行时实时感知的配置,如某个功能项的开关,重启应用就显得有点大动干戈 ...

  10. 负载策略_面试官:讲一下什么是负载均衡,什么是轮询策略随机策略哈希策略

    什么是负载均衡? 先举个例子吧.以超市收银为例,假设现在只有一个窗口.一个收银员: 一般情况下,收银员平均 2 分钟服务一位顾客,10 分钟可以服务 5 位顾客:到周末高峰期时,收银员加快收银,平均 ...

最新文章

  1. docker 退出mysql_Docker mysql即时退出
  2. AI玩俄罗斯方块(Python实现)
  3. matlab基数排序,c语言 数据结构 利用随机函数产生N个随机整数,对这些数进行多种方法进行排序...
  4. What's New In C# 6.0
  5. 嵩天-Python语言程序设计程序题--第八周:程序设计方法学
  6. 王道计算机网络 网络层整理 超详细版
  7. php 反射对象属性,php面向对象之反射功能的用法详解
  8. sd卡linux错误检测,android系统正在准备SD卡正在检测是否有错误且SD卡无法读取解决办法...
  9. 知道的C君带你学语言的作业答案,知到《C君带你玩编程》2020章节测试(含答案)...
  10. -mmin find shell 报错_[shell]find用法小结
  11. python语言程序设计实践教程答案上海交通大学_Python推荐书籍从入门到进阶(珍藏版)...
  12. PyQt5+opencv鼠标滚轮设置图片亮度
  13. Shell 脚本正则表达式(一)
  14. 蓝桥杯基础练习python
  15. 怎么将excel表格转换成word文档
  16. 有趣的程序代码c语言,一个有趣的小程序
  17. 3D模型欣赏:战斗风格美女【3D游戏建模教程】
  18. matlab功率谱密度单位,功率谱密度单位是什么?和功率有关系吗?
  19. 华为云故事汇:2019年第01期(附pdf资料)
  20. 揭开所谓种子搜索神器p2psearcher的面纱

热门文章

  1. 前端电商项目常用组件——放大镜
  2. Linkerd 服务网格配置优化与深入
  3. 激光雷达—读书笔记(1)
  4. 【五】瑞吉外卖开发笔记之套餐管理业务开发
  5. 算力经济:从超级计算到云计算——(文末送书)
  6. GIS 兵临战国,江山舍我其谁--GIS诸侯酣战中原,焉知黄雀在后
  7. 【云计算】后起之秀Pulumi Vs 当代王者 Terraform
  8. Android之父Andy Rubin:生而Geek
  9. 读了《我的家里空无一物》的观后感
  10. 常用的Linux压缩、解压、归档命令整理