我有一個問題,即在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,用一個計數器來統計有多少值已經被推到了陣列,而當他們都做了,你將擁有所有數據(雖然,我也不會推到數組,如果順序很重要 - 因爲異步代碼是異步) –
順序並不重要在這裏:) –
我真的不能使用,因爲量的計數器價值觀是動態的,經常變化。 –