zorceta
V2EX  ›  Node.js

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

  •  
  •   zorceta · Mar 15, 2014 · 4877 views
    This topic created in 4444 days ago, the information mentioned may be changed or developed.
    没法测试,所以来问……

    具体比如

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

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

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

    想结束就如楼上

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

    算是异步的好处之一....
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1519 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 16:47 · PVG 00:47 · LAX 09:47 · JFK 12:47
    ♥ Do have faith in what you're doing.