0

我正在使用node-rest-client对端点进行 GET 调用,并希望多次(在循环中)进行此调用,然后公开响应的参数。
代码如下所示:

// registering remote methods
client.registerMethod("reflect", "<the URL>", "GET");
// call the method
var i = 10;
while (i>0) {
    client.methods.reflect(function (data, response) {
        console.log("x-forwarded-for: " + data.headers["x-forwarded-for"]);
        // raw response
        //console.log(response);
      });
    i--;
}

我得到的错误是:

TypeError: Cannot read property 'x-forwarded-for' of undefined

如果i等于 2,那么就可以了。我想问题来自这样一个事实,即这是异步执行,并且同时触发所有调用,导致沿线某处出现一些阻塞。

进行同步执行的最佳方式是什么(假设这是问题所在)?

4

1 回答 1

0

首先,请检查 x-forwarded-for 的响应,如果同样的问题仍然存在(异步调用),那么只需将此调用包装在这样的匿名函数中

while(i > 0) {
    (function abc(){
        client.methods.reflect(function (data, response) {
            console.log("x-forwarded-for: " + data.headers["x-forwarded-for"]);
            // raw response
            //console.log(response);
        });
    }())

    i--;
}
于 2016-09-28T14:27:03.850 回答