setTimeoutPromise息息相关,有关内容可见Promise in JS

同时,本身setTimeout也值得一讲

Working Principle

  • 当调用 setTimeout 时,它启动一个计时器,并设置它在指定的延迟后运行。
  • 在延迟到期后,JavaScript事件循环将指定的函数放入执行队列。
  • 一旦调用堆栈为空,函数就会被执行,其中的任何相关代码都会运行。
  • 如果在延迟到期之前取消了 setTimeout 函数,计划的函数将不会被执行。
function delayedFunction() {
  console.log("延迟函数执行!");
}
 
const delay = 2000;
 
const timerId = setTimeout(delayedFunction, delay);
 
// 在延迟到期之前取消执行:
clearTimeout(timerId);

因此这样的一段代码可以取消setTimeout schedule的执行