0

在 node.js 中,我需要跨多个回调收集一些数据并将它们存储在一个对象中。我尝试了以下代码,但收集到的数据没有保存在初始化变量中。你能帮我做错什么吗?

我的代码:

for (var x in data) {
    var status = {items: []};

    for (var y in x) {
        do_something(y, function (err, res) {
            again_do_something(res, function(err, result) {
                status.items.push({key: result});
            });
         });
     }

     console.log(status); //Here I got only {items: []}
}
4

1 回答 1

3
console.log(status);

将在回调函数执行之前执行。这就是为什么你看到的是空的。

解决这个常见问题的一种简单方法是使用异步库的 concat 方法

于 2013-10-12T12:07:12.997 回答