如何在node.js中以非阻塞方式进行连接等待?

时间:2011-11-25 13:02:00

标签: javascript node.js

我对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/');

如果有传入请求,则应该使用此代码:

  1. 在输出上写下第一行
  2. 要求节点在十秒钟后调用一个函数,然后让浏览器等待
  3. 写下第二行并返回。
  4. 因此,我假设如果我在第一个请求处于待处理状态时使用其他浏览器调用服务器,则会收到一个与第一个请求并行处理的新请求。

    但是服务器没有响应,然后第二个浏览器只是等到第一个请求完成以从服务器获取其内容。然后我假设setTimeout是阻塞的。我怎样才能实现上面首先描述的目标。

1 个答案:

答案 0 :(得分:0)

您的问题是浏览器对cuncurrent请求的数量有限制。您可以尝试使用IE中的一个请求和Firefox中的一个请求执行相同的操作,我相信它会起作用。我确信这不是nodejs问题。