Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从回调更新javascript父变量_Javascript_Node.js_Callback - Fatal编程技术网

从回调更新javascript父变量

从回调更新javascript父变量,javascript,node.js,callback,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, func

在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: []}
}
将在执行回调函数之前执行。这就是为什么你看到的是空的

解决这个常见问题的一个简单方法是使用

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

解决这个常见问题的一个简单方法是使用

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

解决这个常见问题的一个简单方法是使用

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


解决这个常见问题的一个简单方法是使用

谢谢!我错过了。但是,我怎样才能追踪上一次回调是何时执行的,这样我就可以将收集到的数据转发?@filo891用异步库解决方案更新了我的答案。请查收,谢谢!我错过了。但是,我怎样才能追踪上一次回调是何时执行的,这样我就可以将收集到的数据转发?@filo891用异步库解决方案更新了我的答案。请查收,谢谢!我错过了。但是,我怎样才能追踪上一次回调是何时执行的,这样我就可以将收集到的数据转发?@filo891用异步库解决方案更新了我的答案。请查收,谢谢!我错过了。但是,我怎样才能追踪上一次回调是何时执行的,这样我就可以将收集到的数据转发?@filo891用异步库解决方案更新了我的答案。请查收。
console.log(status);