我差不多是一个节点的新手,并且难以理解http.createServer
方法的请求/响应回调的异步方面。阻止HTTP请求/响应回调?
我的理解是,当一个新的请求发出时,anonymouse函数会再次为新客户端运行。
但是在我的测试,我发现,阻塞进程看起来它会影响另一个请求客户端的响应。
我这样说,因为日志消息"A new client!"
只有在第一个请求完成后才会发生。
var http = require('http');
http.createServer(function(req, res){
console.log("A new client!");
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + 4000);
res.writeHead(200, {"Content-type" : "text/html"});
res.write("done");
res.end();
}).listen("8888");
我对localhost:8888
在我的浏览器多标签测试。
我怀疑强烈地 “的console.log()” 是* *本身不一定同步,但我不是一个节点的人。我的意思是,调用“console.log()”的可见结果不一定立即可见。这当然是Chrome控制台的工作原理,但我不知道这个事实是否与Node环境真正相关,因为它们明显不同。 – Pointy 2011-12-18 16:43:46
当然你可以通过在日志消息中包含一个请求参数来检查... – Pointy 2011-12-18 16:44:31
[在node.js中意味着什么是非阻塞](http://raynos.org/blog/13/What-it-意思是非节点阻塞。) – Raynos 2011-12-18 17:35:19