我很难进行多个 api 调用并将返回的结果放在正确的位置。这就是我想要实现的目标:两个循环,嵌套。外部循环遍历一个复杂的 json 对象,并将一些对象的值放在一个数组调用框中。内部循环调用 api 并将返回的结果放入名为 bag 的数组中。所以我有装满数据的盒子和袋子。当循环和 api 调用都结束时,我想访问 box 和 bag 中的数据并用它做一些事情。我只是不确定在执行的同一点访问两个数组的最佳方法。这是我到目前为止所拥有的,但当然 bag 和 box 是空的,因为它们在所有循环和 api 调用结束之前被调用。
var data = {}//a json object with data;
var bag = [];
var box = [];
async.forEach(data.item, function(item, callback){
async.forEach(item.name, function(name, callback){
callApi(item.name, function(obj){
bag.push(obj);
});
callback();
}
box.push(item);
callback();
});
function callApi(name, callback){
asyncApiCall(url+name, function(err, result){
callback(result);
});
}
//when all loops and api requests are done
//do stuff with contents of box and bag here;
console.log(bag, box);