Node.js nodejs Async.each嵌套循环混淆

Node.js nodejs Async.each嵌套循环混淆,node.js,nested-loops,async.js,Node.js,Nested Loops,Async.js,我想要两个嵌套的for循环 async.each(ListA, function(itemA,callback1){ //process itemA async.each(itemA.Children, function(itemAChild,callback1){ //process itemAChild callback1(); }), funct

我想要两个嵌套的for循环

async.each(ListA,
function(itemA,callback1){
        //process itemA
        async.each(itemA.Children,
        function(itemAChild,callback1){
              //process itemAChild  
              callback1();
               }),
    function(err){
    console.log("InnerLoopFinished")
    }   

callback();
}),function(err){
console.log("OuterLoopFinished")
}
console.log("Process Finished")
现在我希望输出像 { 内循环完成 外环加工 }根据列表大小和

过程发现

我得到的是 首先完成了这个过程 以及InnerLoop和Outerloop消息,具体取决于循环大小

Im在两个循环中处理数据,所以当控件打印“final process”消息时,我希望在此之前将所有数据填充到一个对象,并将其作为响应发送,这在这里是无法实现的


我想我不清楚异步工作的概念。每个..有人能帮我实现所需的输出吗

它是异步的。异步函数立即返回,而不等待处理任何内容。这就是为什么先打印“过程完成”的原因。这就是回电和承诺的全部意义。进程结束时会调用它们,这样,当发生这种情况时,您就可以插入代码来执行所需操作。@slebetman那么我如何解决我的问题呢。。。单回路使用asyn在串行模式下工作良好。。。但对于嵌套循环,它并没有像我所希望的那样工作……首先,我认为您有一个输入错误。您有两个名为
callback1
的变量,没有一个名为
callback
的变量。此外,我认为您的大括号不匹配。您似乎缺少一些右大括号。它是异步的。异步函数立即返回,而不等待处理任何内容。这就是为什么先打印“过程完成”的原因。这就是回电和承诺的全部意义。进程结束时会调用它们,这样,当发生这种情况时,您就可以插入代码来执行所需操作。@slebetman那么我如何解决我的问题呢。。。单回路使用asyn在串行模式下工作良好。。。但对于嵌套循环,它并没有像我所希望的那样工作……首先,我认为您有一个输入错误。您有两个名为
callback1
的变量,没有一个名为
callback
的变量。此外,我认为您的大括号不匹配。你好像少了一些收尾括号。非常感谢。。我用和你一样的方法得到了答案。。有点晚了。再次感谢@mustafaThanks。非常感谢。。我用和你一样的方法得到了答案。。有点晚了…再次感谢@mustafa
async.each(ListA, function (itemA, callback) { //loop through array
    //process itemA
  async.each(itemA.Children, function (itemAChild, callback1) { //loop through array
    //process itemAChild
    callback1(); 
    }, function(err) {
      console.log("InnerLoopFinished");
      callback();
    });
  }, function(err) {
    console.log("OuterLoopFinished");
    console.log('Process Finished');
});