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

标签 javascript node.js nonblocking

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

我对以下代码似乎以阻塞方式运行的原因感到困惑。当我在 5 秒后将浏览器打开到 localhost:8080 时,“进程开始...”和“进程完成”。出现在屏幕上。我希望“流程开始...”立即出现,然后“流程完成”。 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);

最佳答案

您的浏览器很可能正在缓冲响应。尝试用 curl (curl -N http://localhost:8080) 代替它,您会看到不同之处。

关于javascript - 为什么这个简单的 Node 程序不是非阻塞的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24443188/

相关文章:

javascript - 即时选择 AuthGuard 类型

multithreading - 玩!框架 : Limit concurrent non-blocking IO calls made via WS

javascript - angular2在html中输出对象值而不指定对象名称

javascript - 选择传单标记

javascript - jQuery在ajax之后修改我的html(img inside a)

javascript - 如何将这些值替换为 NodeJS 中的 sql 表达式?

javascript - PHP 中用于运行用户脚本的解释语言

完整的 JavaScript 自省(introspection)

具有非阻塞管道 IO 的 C fork/exec

c# - C# 中的 Volatile 和 Thread.MemoryBarrier