1. 执行顺序说明
1. 清空主执行栈
2. 清空微任务队列
3. 运行一个timer队列的回调函数,询问微任务队列,如果有回调函数,清空。
4. 循环第3步,直到清空timer队列
5. 进入poll队列,执行poll队列的回调函数,询问微任务队列,清空微任务队列。
6. 循环第5步,清空poll队列
7.清空check队列
8. 从第2步再次循环
示例1:
setTimeout(() => { console.log('timeout') }) setImmediate(() => { console.log('immediate') }) // node命令执行后,根据运行环境不同,先后顺序不一定。 // 如果setTimout回调函数先进入队列,先执行;否则setImmediate先执行