V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ctftemp
V2EX  ›  程序员

刚开始学 nodejs,有一些疑问

  •  
  •   ctftemp · 2015-12-26 19:26:47 +08:00 · 2805 次点击
    这是一个创建于 3287 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    2.我试验以下代码:

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

    我原以为程序会直接退出,结果是等待 5 秒后触发回调再退出。那是不是可以理解为我们写的 js 代码都是运行在一个大的对用户不可见的 event loop 中?

    7 条回复    2015-12-27 00:17:11 +08:00
    vietor
        1
    vietor  
       2015-12-26 19:31:30 +08:00 via Android
    ctftemp
        2
    ctftemp  
    OP
       2015-12-26 19:54:30 +08:00
    @vietor 谢谢
    boyhailong
        3
    boyhailong  
       2015-12-26 20:22:23 +08:00
    底层是基于 libuv 的 看下源码就明白了啊
    SonicY
        4
    SonicY  
       2015-12-26 20:29:44 +08:00
    Linux 下用的 libeio
    haozhang
        5
    haozhang  
       2015-12-26 20:38:38 +08:00   ❤️ 1
    ctftemp
        6
    ctftemp  
    OP
       2015-12-26 23:46:45 +08:00
    @haozhang 这篇介绍的太清楚了,非常感谢!
    zhuangzhuang1988
        7
    zhuangzhuang1988  
       2015-12-27 00:17:11 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4071 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:21 · PVG 13:21 · LAX 21:21 · JFK 00:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.