为什么这个简单的Node程序不是非阻塞的?

时间:2014-06-27 02:48:53

标签: javascript node.js nonblocking

我已经安装了节点,并且正在运行一些简单的“hello world”风格程序,以便更好地掌握正在发生的事情。

我很困惑为什么以下代码似乎以阻塞方式运行。当我在5秒后打开浏览器到localhost:8080时,“Process started ...”和“Process complete”。出现在屏幕上。我希望“流程开始...”立即出现,然后“流程完成”。 5秒后关注。关于为什么超时会影响这段代码的任何想法?这段代码保存在一个名为'hello.js'的文件中,我只是用'node hello.js'运行。

var http = require('http');

http.createServer(function(request,response) {
    response.writeHead(200);
    response.write("Process started...");
    setTimeout(function() {
        response.write("Process complete.");
        response.end();
    }, 5000);
}).listen(8080);

1 个答案:

答案 0 :(得分:3)

您的浏览器很可能会缓冲响应。尝试使用curl(curl -N http://localhost:8080)进行匹配,然后你会看到差异。