我很难做出多个API调用,并在正确的位置获取返回的结果。这是我想要实现的:两个循环,嵌套。外层循环遍历复杂的json对象,并将一些对象的值放入数组调用框中。内部循环调用API并将返回的结果放入一个名为bag的数组中。所以我有箱子和袋子里装满了数据。当两个循环和api调用都结束时,我希望能够访问盒子和包中的数据,并使用它进行操作。我只是不确定要在同一点执行时访问这两个数组的最佳方式。这是我迄今为止,但袋和框当然是空的,因为它们在所有循环和api调用结束之前被调用。Node.js 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);
是'async' – 2013-03-02 05:19:03
到Caolan的异步库的引用如果是Caolan”异步的确,它不使用它的方式异步GitHub的页面具有良好例子 – Greg 2013-03-02 06:37:58
@BrandonTilley是它的Caolan的异步 – Kunle 2013-03-04 16:41:12