我有一个问题,即在nodejs中循环获取apis请求。我想从多个端点获取数据,并在所有请求完成时继续。我尝试了这样的东西,但它运行异步并记录一个空数组。任何提示如何知道所有请求都准备好的时候?从API获取数据,并在完成后继续
var api_endpoints = { "1": "url1", "2": "url2", "3": "url3" };
var allApiSources = [];
_.each(api_endpoints, function (val, key) {
request(val, function (error, response, body) {
if (!error && response.statusCode == 200) {
var data = JSON.parse(body);
_.each(data.url, function (val, key) {
allApiSources.push(value);
});
}
});
});
console.log(allApiSources); // []
谢谢!
1.使用承诺或2.使用asyncjs或3,用一个计数器来统计有多少值已经被推到了阵列,而当他们都做了,你将拥有所有数据(虽然,我也不会推到数组,如果顺序很重要 - 因为异步代码是异步) –
顺序并不重要在这里:) –
我真的不能使用,因为量的计数器价值观是动态的,经常变化。 –