我刚开始学习node.js,尝试使用setTimeout模拟长连接并希望它能异步执行。
var http = require('http');
http.createServer(function (request, response) {
console.log('New request @ ' + request.url);
(function (response) {
setTimeout(function () {
console.log('Time is up');
response.writeHead(200, {"Content-Type": "text/plain"});
response.end('Hello World\n');
}, 3000);
})(response);
}).listen(8124);
console.log('Server running at http://127.0.0.1:8124/');
然而,上面的代码表现得像一个同步的单线程应用程序,只能每3秒处理一个请求。
我认为在node.js中所有东西都应该是异步的。那么,这里的问题是什么?