刚开始学 nodejs,有一些疑问

2015-12-26 19:26:47 +08:00
 ctftemp
不知道下面我关于 js 异步 io 的理解对不对:
1.nodejs 的异步 io 实际上是通过封装 epoll 等 io 复用函数,在用户态实现了异步 io ,而底层实现上还是基于事件驱动和同步 io 的。

2.我试验以下代码:

```
setTimeout(function(){
console.log("1");
},5000);
```

我原以为程序会直接退出,结果是等待 5 秒后触发回调再退出。那是不是可以理解为我们写的 js 代码都是运行在一个大的对用户不可见的 event loop 中?
2715 次点击
所在节点    程序员
7 条回复
vietor
2015-12-26 19:31:30 +08:00
ctftemp
2015-12-26 19:54:30 +08:00
@vietor 谢谢
boyhailong
2015-12-26 20:22:23 +08:00
底层是基于 libuv 的 看下源码就明白了啊
SonicY
2015-12-26 20:29:44 +08:00
Linux 下用的 libeio
haozhang
2015-12-26 20:38:38 +08:00
ctftemp
2015-12-26 23:46:45 +08:00
@haozhang 这篇介绍的太清楚了,非常感谢!
zhuangzhuang1988
2015-12-27 00:17:11 +08:00

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

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

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

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

© 2021 V2EX