【发布时间】:2018-08-31 14:15:18
【问题描述】:
我有一个 setInterval 函数,它运行调用服务器的异步代码:
setInterval(()=> {
//run AJAX function here
}, 5000);
如果服务器在 5 秒内没有得到响应,很可能它会再次运行 set Interval,然后在同一个端点上发出多个请求,有没有办法让 setInterval 只在下一个 5 秒后开始执行AJAX 函数返回响应?
【问题讨论】:
-
否,setInterval 设置间隔以给定的时间间隔运行
-
那么有没有其他方法可以在不使用 setInterval 的情况下做同样的事情?
-
是的,精心设计的
setTimeout- 但这真的取决于你的实际代码 -
同上;你需要做一个 setInterval 然后当你做异步调用时,设置一个标志来表明你已经完成了。在随后的 setInterval 调用中,您将检查该标志。
-
你不能只将 Ajax 调用包装在一个命名函数中,然后使用 setTimeout 在 Ajax 响应回调中再次调用该函数以延迟执行吗?
标签: javascript ajax ecmascript-6 setinterval