面试官:你能用异步模拟超时重传机制?

本文通过一个生动的例子介绍了如何在前端模拟TCP的超时重传机制,适用于网络不佳时的数据接口请求。文章详细分析了问题,设计了代码实现,并解释了核心逻辑,包括设置请求超时判断、请求次数统计以及全局定时器的使用。
摘要由CSDN通过智能技术生成

引言

前面我讲解了两篇有关异步的逻辑思维题目,一个是红绿灯转换,还有一个是异步并发限制。有小伙伴私信我说不过瘾,希望还能再出一篇异步超时重传的讲解。为了满足这位粉丝的小小要求(我尼玛),我查询了相关资料和面试题,确实发现这是某大肠面试的代码设计题。不得不说这位粉丝发现的这个题目是相当亮眼,相当给力。

题目分析

超时重传机制,看到这个词语想必科班同学都十分十分熟悉吧。大家第一时间肯定会想到计算机网络中tcp的超时重传。不错,此处的异步模拟超时重传机制和计算机网络的超时重传原理是几乎一样的。二者的唯一区别就在于一个作用在tcp的可靠传输上,而本节我们的超时重传是作用在前端请求数据接口上。

性感例子

正直18岁的单身狗小明,血气方刚。他有一个小爱好喜欢在a网站上学习“外语”,既然是外语,那这个a网站的服务器应该在外国吧,网站a为了传播外语文化,在数据接口上采用了超时重传机制。假设最大请求次数是5次,每次最大请求延迟时间是5s。小明某天夜里又开始学起了外语,但是网速不好啊。

  • 他第一次打开a网站,延时6s,失败次数1
  • 他不忍心放弃学习,继续等待,网站继续请求数据,延时又6s,失败次数2
  • 他决定在等等,幸运的是此处接口3s后返回外语资料,他开心死了。

上面是一个超时重传的例子,如果数据请求次数在5次包含5的次数内请求成功,则请求成功。否则一直请求,当请求次数大于5时,返回失败。

代码设计

//timer--一次请求的最大响应时间
//limi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值