node.js经典示例奇怪的行为

时间:2016-02-03 14:11:21

标签: javascript node.js

有经典节点示例:

var http = require('http');
var s = http.createServer(function(req, res){
    res.writeHead(200, {'content-type':'text/plain'});
    res.write('hi there\n');
    setTimeout(function(){
        res.end('and here');
    },2000);
});
s.listen(8000);

当我跑

curl http://127.0.0.1:8000

它很好,"你好"超过2秒 - "在这里"。确定。

但是当我更改字符串#4并删除\ n:

 res.write('hi there');

我看到延迟(2秒)和同时输出没有任何超时"嗨那里"和"以及"

node -v = 4.2.6

这很好,这很糟糕还是不重要?

2 个答案:

答案 0 :(得分:1)

这似乎是浏览器特定的行为。 firefox立即显示数据,而chrome似乎缓冲并等待响应结束。

答案 1 :(得分:1)

答案显示在评论中:it's a line-wise buffer, a buffer that flushes when it sees a line terminator.