身为一名老 noder, 我们都知道, nodejs 程序写得好不好, 就看对 eventloop 理解得到不到位.
下面这段代码输出是多少呢?
setTimeout(function () {
setTimeout(function timeout () {
console.log('1');
},0);
setImmediate(function immediate () {
console.log('2');
});
}, 0);
setImmediate(function () {
setTimeout(function timeout () {
console.log('3');
},0);
setImmediate(function immediate () {
console.log('4');
});
});
setTimeout 与 setImmediate 之间的区别
process.nextTick 与 setImmediate 之间的区别
何时需要使用 process.nextTick
promise 在 eventloop 中的定位
当我们在说单线程 nodejs 时, 其实是在说我们写的 nodejs 代码的执行是单线程的.
实际上, nodejs 程序在运行时自己维护了一个线程池. 垃圾回收任务就是在单独的线程里执行的.