【发布时间】:2023-04-07 20:58:01
【问题描述】:
我对 node.js 很好奇,我花了几个小时阅读和观看视频。我没有写那么多代码,但在我写的几行代码中出现了意外行为:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Wait some seconds please<br/>');
setTimeout(function() {
res.end("I'm done");
}, 10 * 1000);
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
当有传入请求时,应该使用此代码:
- 在输出的第一行写入
- 十秒后请求节点调用函数,然后让浏览器等待
- 写第二行并返回。
因此,我假设如果我在第一个请求待处理时使用另一个浏览器调用服务器,我会收到一个与第一个请求并行处理的新请求。
但是服务器没有响应,然后第二个浏览器只是等到第一个请求完成以从服务器获取其内容。然后我假设 setTimeout 是阻塞的。我怎样才能实现上面首先描述的目标。
【问题讨论】:
-
您的代码似乎遇到了与该问题相同的问题 - 您是否以块的形式获得响应是特定于浏览器的。
-
我看到了写的数据,我很确定我写的 Firefox 的等待动画项在尝试连接和等待服务器应答时不一样
标签: javascript node.js