Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从多个事件中识别事件发射器_Node.js - Fatal编程技术网

Node.js 从多个事件中识别事件发射器

Node.js 从多个事件中识别事件发射器,node.js,Node.js,我试图在Node.js中创建多个http请求,每个请求都接收一个单独的响应。我要做的是确定哪个事件对应于哪个调用: for (var i=0; i<100; i++) { var req = http.request(options, function(response) { var str = ""; response.on('data', function (chunk) { console.log(str.length

我试图在Node.js中创建多个http请求,每个请求都接收一个单独的响应。我要做的是确定哪个事件对应于哪个调用:

for (var i=0; i<100; i++) {
    var req = http.request(options, function(response) {
        var str = "";

        response.on('data', function (chunk) {
            console.log(str.length);
        });

        response.on('end', function () {
            console.log("End of response");
        }); 

    }); 

    req.on('error', function(err) {
        console.log(err.message);
    });

    req.end();
}

是否有任何方法可以正确识别每个迭代对应的响应?我基本上创建了100个响应实例,但它们都发出相同的事件,因此事件的发出/处理是全局性的。基本上,我能以某种方式将I与响应发出的事件联系起来吗?

@BenFortune是对的,这与闭包有关。原始问题中的示例过于简化,但如果您的结构类似于:

for(var i=0; ... ) {

    function someFunction() {

    }

}

如果您想在函数内部跟踪函数外部的内容,那么您应该查看闭包。

可能重复的内容,也许您应该使用类似的内容将处理程序行为附加到每个请求。现在还不清楚你在这里想做什么,因为你提出的每个请求都不同。如果您想捕获i:var _i=i,我应该为每个实例提供一个本地副本。