JavaScript中setInterval遇其他函数执行时,会延迟执行吗?
问题解答
JavaScript采用单线程执行模型,所有同步任务会在主线程的执行栈中依次运行;而setInterval这类定时器的回调属于异步任务,会被放入任务队列,等待主线程空闲时才会被处理。
对应你的场景:
- 函数A启动后会占据主线程持续执行3秒;
- 即便
setInterval到了预定触发时间(比如A执行到第1.5秒时),此时主线程仍在运行A,函数B不会立刻执行,而是被加入任务队列排队; - 只有等函数A执行完毕、主线程空闲后,才会从任务队列中取出函数B执行。
结论:function B会在function A执行完成后再执行,无法按预定时间立刻触发。
内容的提问来源于stack exchange,提问作者TDJ
相关产品推荐
相关产品推荐

