我已经安装了 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/