我需要以固定的时间间隔依次执行多个函数,因此使用了setTimeout。我想确保我理解它是如何执行的。我有以下逻辑:
setTimeout(function() {
//Execute first function
}, 200);
setTimeout(function() {
//Execute second function
}, 400);
setTimeout(function() {
//Execute third function
}, 600);
这是否意味着第一个函数在 200 毫秒后执行,第二个函数在第一个函数后 200 毫秒后执行,第三个函数在第二个函数后 200 毫秒后执行,依此类推?或者我需要改变什么。
这是否意味着第一个函数在 200 毫秒后执行,第二个函数在第一个函数后 200 毫秒后执行,第三个函数在第二个函数后 200 毫秒后执行,依此类推?
本质上,是的,就是这个意思。但请记住规格 http://www.w3.org/TR/2011/WD-html5-20110525/timers.html只保证延迟参数是minimum必须等待的时间,浏览器有时可以并且确实会限制这些调用 - 特别是如果选项卡未处于活动状态:
注意:此 API 不保证计时器将完全按计划触发。由于 CPU 负载、其他任务等造成的延迟是可以预料的。
and:
- (可选)进一步等待用户代理定义的时间长度。
注意:这旨在允许用户代理根据需要填充超时以优化设备的电源使用。例如,一些处理器具有低功耗模式,其中定时器的粒度被降低;在此类平台上,用户代理可以减慢计时器以适应此时间表,而不是要求处理器使用更准确的模式及其相关的更高功耗。
此外,如果您的任何函数需要花费大量时间来运行,则一个函数完成结束与下一个函数启动之间的延迟可能不会是 200 毫秒 - 可能会更短。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)