成为一名老 noder: 深入理解 Event Loop

2020-03-25 21:06:17 +08:00
 chuankoog

身为一名老 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');
  });
});

cliche

setTimeout 与 setImmediate 之间的区别
process.nextTick 与 setImmediate 之间的区别
何时需要使用 process.nextTick
promise 在 eventloop 中的定位

单线程的 nodejs

当我们在说单线程 nodejs 时, 其实是在说我们写的 nodejs 代码的执行是单线程的.

实际上, nodejs 程序在运行时自己维护了一个线程池. 垃圾回收任务就是在单独的线程里执行的.

more...

4485 次点击
所在节点    Node.js
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX