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

2014-03-15 22:15:47 +08:00
 zorceta
没法测试,所以来问……

具体比如

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

console.log会执行吗?
4201 次点击
所在节点    Node.js
7 条回复
rankjie
2014-03-15 22:16:12 +08:00
switch
2014-03-15 22:44:20 +08:00
function 内只要不到 return 的都可以执行
Numbcoder
2014-03-16 00:57:43 +08:00
为什么不会?
SoloCompany
2014-03-16 01:23:43 +08:00
为什么是 req.write 而不是 res.write?
(对不起,没学过 node 见笑了)

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

想结束就如楼上

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

算是异步的好处之一....

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

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

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

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

© 2021 V2EX