node定时器

2020-06-22  本文已影响0人  海豚先生的博客

执行流程

image.png

本轮循环结束后执行

process.nextTick
Promise 微任务队列

下轮循环执行

setTimeout、setInterval、setImmediate 宏任务队列

// 一般先输出1,后输出2,但不全是
// 参考流程图,先timers,后check Handlers
setTimeout(() => console.log(1));
setImmediate(() => console.log(2));
const fs = require('fs');
// 肯定先输出2,后输出1
// 参考流程,文件读取先I/O callbacks,poll阶段执行2个回调,
// 接下来是check handlers,下次循环开始执行timers
fs.readFile('test.js', () => {
  setTimeout(() => console.log(1));
  setImmediate(() => console.log(2));
});
上一篇下一篇

猜你喜欢

热点阅读