setTimeout 实现原理
setTimeout 实现渲染进程所有运行在主线程上的任务都需要先添加到消息队列中,然后事件循环系统顺序执行消息队列eg: 解析 DOM; 改变 web 大小, 重新布局; js 垃圾回收; 异步执行 js 代码但是定时器的任务不能直接放置在消息队列中,他需要按照时间间隔来执行,因此,chrome 除了消息队列外,新增了个延时队列,在每次执行完任务后,执行延迟队列中的任务,计算出到期任务,依次执行代码实现:在每次新增一个定时器时,将定时器添加到 DelayTask 中执行消息循环时,在当前



