为了账号安全,请及时绑定邮箱和手机立即绑定

async await 轮询超时处理

async await 轮询超时处理

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

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

function sendRequest() {  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('receive response');
    }, Math.round(Math.random() * 2000));
  })
}async function runTasks() {  for (let i = 0; i < 1000; i++) {    const res = await sendRequest();    console.log(res);
  }
}

runTasks();

应该就是这个意思吧,等上一个请求完成后再发下一个请求,网络请求用setTimeout模拟。


查看完整回答
反对 回复 2019-02-05
  • 1 回答
  • 0 关注
  • 484 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信