V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zorceta
V2EX  ›  Node.js

req.end()之后的代码还会继续执行吗?

  •  
  •   zorceta · 2014-03-15 22:15:47 +08:00 · 4171 次点击
    这是一个创建于 3906 天前的主题,其中的信息可能已经有所发展或是发生改变。
    没法测试,所以来问……

    具体比如

    require("http").createServer(function(req, res) {
    req.writeHead(200);
    req.end("hello");
    console.log("hmm");
    }).listen(8369);

    console.log会执行吗?
    7 条回复    1970-01-01 08:00:00 +08:00
    rankjie
        1
    rankjie  
       2014-03-15 22:16:12 +08:00 via iPhone   ❤️ 1
    switch
        2
    switch  
       2014-03-15 22:44:20 +08:00   ❤️ 1
    function 内只要不到 return 的都可以执行
    Numbcoder
        3
    Numbcoder  
       2014-03-16 00:57:43 +08:00   ❤️ 1
    为什么不会?
    SoloCompany
        4
    SoloCompany  
       2014-03-16 01:23:43 +08:00   ❤️ 1
    为什么是 req.write 而不是 res.write?
    (对不起,没学过 node 见笑了)

    另外,一般而言,end 的语意是针对 response 这个 object 而已,只是关闭(flush?)输出,和你的执行上下文无关
    zorceta
        5
    zorceta  
    OP
       2014-03-16 01:34:45 +08:00
    @SoloCompany 手误-_-#
    jyhmijack
        6
    jyhmijack  
       2014-03-16 08:23:43 +08:00 via iPhone   ❤️ 1
    return req.end()
    rekey
        7
    rekey  
       2014-03-16 23:11:14 +08:00   ❤️ 1
    会执行.

    想结束就如楼上

    不想结束,其实也可以在输出完给用户以后再做点事情.比如用户看过了这个文章之类的存缓存的过程...

    算是异步的好处之一....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:56 · PVG 20:56 · LAX 04:56 · JFK 07:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.