我是node.js的初学者我在使用setTimeout(function(){.....},time);
thingo时遇到了一些问题。当我卷曲本地服务器但谷歌浏览器没有预期时(我没有测试过其他浏览器),这种方法很好用。
我的代码是:
/* simple node.js createserver */
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200);
response.write('Somthing\r\n');
setTimeout(function(){
response.end('\n This came out after 5 seconds :) ');
}, 5000);
response.write('Hello World\n');
}).listen(8124);
console.log('Server running at http://127.0.0.1:8124/');
当我curl 127.0.0.1:8124
一切按预期工作时。但是当我在浏览器中指出它时,它会保持闲置一段时间(我猜这是5秒)并立即显示所有内容?这是node.js的预期行为还是我遗漏了什么?浏览器可以做像curl那样的事情(即先打印两行,然后等待5秒再打印另一行)?
答案 0 :(得分:1)
预计 - 浏览器不会在完成加载之前显示页面(我相信大块可能存在异常,但大多数情况下都是如此)
答案 1 :(得分:1)
试试这个
http.createServer(function (request, response)
response.setHeader('Content-Type', 'text/html; charset=UTF-8');
response.writeHead(200);
response.write('Somthing\r\n');
setTimeout(function(){
response.end('\n This came out after 5 seconds :) ');
}, 5000);
response.write('Hello World\n');
//No point writing Hello World here as it is written immediately
}).listen(8124);