理解彼此跟随的setTimeout()函数的执行

Ilj*_*lja 2 javascript execution settimeout

我需要以固定的时间间隔一个接一个地执行多个函数,因此使用setTimeout.我想确保我理解它是如何执行的.我有以下逻辑:

setTimeout(function() {
  //Execute first function
}, 200);

setTimeout(function() {
  //Execute second function
}, 400);

setTimeout(function() {
  //Execute third function
}, 600);
Run Code Online (Sandbox Code Playgroud)

这是否意味着第一个函数在200ms之后执行,第二个函数在第一个函数执行后200ms,第三个函数在第二个函数之后200ms执行,依此类推?或者我需要改变一些东西.

Jam*_*rpe 5

这是否意味着第一个功能在200ms后执行,第二个功能在第一个200ms后执行,第二个功能在第二个200ms后执行,依此类推?

基本上,是的,这就是它的含义.但请记住,规范只保证延迟参数是必须等待的最短时间,并且浏览器有时可以并且确实对这些调用进行限制 - 特别是如果选项卡未激活:

注意:此API不保证计时器将按计划完全启动.由于CPU负载,其他任务等导致的延迟是预期的.

和:

  1. (可选)等待另一个用户代理定义的时间长度.

注意:这旨在允许用户代理根据需要填充超时,以优化设备的电源使用.例如,一些处理器具有低功耗模式,其中定时器的粒度减小; 在这样的平台上,用户代理可以减慢定时器以适应该调度,而不是要求处理器使用更准确的模式及其相关的更高功率使用.

此外,如果您的任何功能需要花费相当多的时间来运行,则一个功能结束和下一个启动之间的延迟可能不是200毫秒 - 它可能会更少.