2

这是书中的一个例子:“Professional Node.js”。它应该每秒输出一个时间戳,持续 3 秒。但是在调用 res.end() 之前什么都没有出现:(页面加载时 3s,在所有出现在屏幕上之前......)

require('http').createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    var left = 3;
    var interval = setInterval(function () {
        res.write(Date.now() + " ");

        left -= 1;
        if (left === 0) {
            clearInterval(interval);
            res.end();
        }
    }, 1000);
}).listen(4000);

你也一样吗?

[编辑:]我发现这个简单的 Node.js 服务器以分块传输编码进行响应, 但它对我也不起作用......(所有都在 end() 调用 ~5s 之后显示)

4

1 回答 1

0

对我来说很好。所以这取决于你如何测试它,因为浏览器、curl 和类似的东西会缓冲东西。

GET / HTTP/1.1

HTTP/1.1 200 OK
Content-Type: text/plain
Date: Fri, 27 Sep 2013 11:21:22 GMT
Connection: keep-alive
Transfer-Encoding: chunked

e
1380280883375 
e
1380280884378 
e
1380280885380 
0
于 2013-09-27T11:23:08.357 回答