我的问题的简化版本:
var request = require('request');
var myJSONObject;
request.get(largeEndpointThatOnlyHasIDs, {authstuff}, function (err, response, body) {
if (!err && response.statusCode = 200) {
JSON.parse(body).forEach(function(item) {
getItemData(item.item_id, function(result) {
myJSONObject['itemData'] = result;
});
});
}
});
getItemData(id, callback) {
request(itemAPIEndpoint, function(err, response, body) {
if (!err && response.statusCode = 200) {
callback(JSON.parse(body));
}
});
}
好吧,那样的作品。我可以在回调中使用console.log(myJSONObject),并且看到它一次填充一个。基本上我只是无法弄清楚如何等待整个forEach完成,myJSONObject被填充并且我可以将它用于其他事情。
对不起,我不确定我是否能很好地解释我的意思。如果没有,请告诉我,我会尝试澄清一点。