async await 轮询超时处理

有这么一个场景 我需要用setInterval获取ajax请求(后端不愿意使用webscoket),我这里发现就是接口处于pending时,还是一直在轮询发送请求,我想做一个优化就是当接口pending了就停止发送,直到后台返回数据了再继续轮询,这个能用async、await解决么?

达令说
浏览 488回答 1
1回答

一只斗牛犬

function&nbsp;sendRequest()&nbsp;{&nbsp;&nbsp;return&nbsp;new&nbsp;Promise((resolve,&nbsp;reject)&nbsp;=>&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;setTimeout(()&nbsp;=>&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resolve('receive&nbsp;response'); &nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;Math.round(Math.random()&nbsp;*&nbsp;2000)); &nbsp;&nbsp;}) }async&nbsp;function&nbsp;runTasks()&nbsp;{&nbsp;&nbsp;for&nbsp;(let&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;1000;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;res&nbsp;=&nbsp;await&nbsp;sendRequest();&nbsp;&nbsp;&nbsp;&nbsp;console.log(res); &nbsp;&nbsp;} } runTasks();应该就是这个意思吧,等上一个请求完成后再发下一个请求,网络请求用setTimeout模拟。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript