身为一名老 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 程序在运行时自己维护了一个线程池. 垃圾回收任务就是在单独的线程里执行的.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.