循环中的Node.js http.get获取所有请求的状态代码

时间:2015-03-12 01:33:20

标签: javascript node.js http request

当我运行这样的http.get请求时,它会返回5个条目的状态代码

var http = require("http");

var i = 10;
while (i--) {
    (function (i) {
        http.get("http://localhost", function (res) {

            /*res.on('data', function (data) {
                //console.log( i + "#data# " + data)
            });*/

            console.log(i + " #status# " + res.statusCode);
        });
    })(i);
    console.log("requested " + i);

}

但是如果我添加res.on()事件处理程序,它会显示所有请求。

var http = require("http");

var i = 10;
while (i--) {
    (function (i) {
        http.get("http://localhost", function (res) {

            res.on('data', function (data) {
                //console.log( i + "#data# " + data)
            });

            console.log(i + " #status# " + res.statusCode);
        });
    })(i);
    console.log("requested " + i);

}

根据我的理解 - 在第一个脚本中,我没有为任何res事件附加任何处理程序,所以它在while循环完成执行后立即终止。在这段时间内只有5个电话完成,我会得到它们的状态代码。

我的问题是,如果我只对我的请求的状态代码感兴趣,是否有办法获取它们而不是为“res”事件添加处理程序?

0 个答案:

没有答案