use*_*850 4 javascript setinterval
Javascript setInterval方法是否等待(至少)特定代码的两次执行之间的指定时间间隔,还是在完成上一次执行和下一次执行开始之间等待该时间间隔?
(或者,比较Java的时候ScheduledExecutorService方法-是的setInterval相似scheduleAtFixedRate()或者说scheduleWithFixedDelay()?)
如果setInterval以1000毫秒的间隔调用并且回调代码需要100毫秒才能运行,则下一个回调将在900毫秒后执行.
如果回调需要1050毫秒,则下一个回调将在第一个完成后立即启动(延迟50毫秒).这种延迟将不断积累.
所以在Java世界中这类似于scheduleAtFixedRate().如果您需要scheduleWithFixedDelay()行为,则必须在setTimeout()每次完成时使用并重新安排回调:
function callback() {
//long running code
setTimeout(callback, 1000);
}
setTimeout(callback, 1000);
Run Code Online (Sandbox Code Playgroud)
callback()无论运行多长时间,上面的代码将在完成再次启动之后等待1000毫秒.
| 归档时间: |
|
| 查看次数: |
974 次 |
| 最近记录: |