【发布时间】:2018-02-02 09:50:51
【问题描述】:
我想要两个嵌套的 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 消息取决于循环大小..
我在两个循环中处理数据,所以当控制打印“最终处理”消息时,我希望我的所有数据都填充到一个对象中,然后将其作为此处未实现的响应发送
我认为我不清楚工作 async.each.. 的想法。有人可以帮助我实现所需的输出
【问题讨论】:
-
它是异步的。异步函数立即返回,无需等待处理任何内容。这就是首先打印“Process Finished”的原因。这就是回调和承诺的全部意义所在。当过程完成时它们会被调用,以便您可以插入代码以在发生这种情况时执行您想要的操作。
-
@slebetman 那么我该如何解决我的问题? ...单循环在串行模式下使用 asyn.each 可以正常工作...但是对于嵌套循环,它不像我想要的那样工作 ....
-
首先,我认为你有一个错字。您有两个名为
callback1的变量,没有一个名为callback -
另外,我认为你的牙套不匹配。您似乎缺少一些右括号。
标签: node.js nested-loops async.js