我正在使用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,则可以。
我想这个问题来自这个事实,即这是异步执行,并且while中的所有调用都会立即被触发,导致某些地方出现堵塞。
进行同步执行的最佳方法是什么(假设这是问题所在?)
答案 0 :(得分: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--;
}