与JavaScript setInterval相关的问题

me_*_*jay 2 javascript setinterval

我有两个与JavaScript setInterval()方法相关的问题.我没有发现任何与这些问题相关的实际案例(但我想这也不是不可能),但出于好奇,我想问这些问题.

1.)如果要执行的代码setInterval()花费的时间超过提供的时间间隔会发生什么?先前的执行是否停止,当前的执行是否开始执行,或者两者都将并行运行.

2.)如果整个系统(OS)在setInterval()被调用的时间间隔之间被挂起怎么办?在这种情况下,代码是否可以以不同的间隔执行?我的意思是setInterval()确保代码只能以指定的间隔执行吗?谢谢

Ell*_* B. 5

  1. JavaScript使用单线程执行.如功能setTimeoutsetInterval导致许多人相信,这是可能的多线程JavaScript中.在现实中,setInterval并且setTimeout仅仅调度功能或表达在指定的时间执行与这些功能被添加到相同单线程堆栈.如果浏览器在计划setTimeoutsetInterval计划触发时正在处理其他内容,则只要浏览器可以访问,就会执行计划的功能.

  2. setInterval不保证函数仅以指定的间隔执行.setInterval将尝试在指定的时间执行一个函数,但任何数量的事情都可能延迟执行或阻止它完全执行.