setTimeout
和Promise
息息相关,有关内容可见Promise in JS
同时,本身setTimeout
也值得一讲
Working Principle
- 当调用 setTimeout 时,它启动一个计时器,并设置它在指定的延迟后运行。
- 在延迟到期后,JavaScript事件循环将指定的函数放入执行队列。
- 一旦调用堆栈为空,函数就会被执行,其中的任何相关代码都会运行。
- 如果在延迟到期之前取消了 setTimeout 函数,计划的函数将不会被执行。
因此这样的一段代码可以取消setTimeout
schedule的执行