从回调更新javascript父变量

时间:2013-10-12 12:04:14

标签: javascript node.js callback

在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: []}
}

1 个答案:

答案 0 :(得分:3)

console.log(status);

将在回调函数执行之前执行。这就是你看到空洞的原因。

解决此常见问题的一种简单方法是使用async library's concat method