2017-05-25 73 views
0

我在嵌套循环内执行异步函数时遇到了问题。 下面是我的代码如何保持循环直到异步函数完成

count1 = [1,2,3]; 
count2 = [1,2]; 
async.forEach(count1, function(count1, callback) { 
    console.log("aa"); 
    async.forEach(count2, function(count2, callback1) { 
     console.log("bb"); 
     connection.query('INSERT INTO customers set ?', data,function(err, result) { 
      if(err) { 
       console.log(err); 
       callback1(err); 
      } 
      console.log("success"); 
      callback1(null); 
     }, function(err, result) { 
      console.log(result); 
      callback1(err); 
     }); 

    }, function(err) { 
     callback(err); 
    }); 
}); 

下面是这段代码的输出

aa 
bb 
bb 
aa 
bb 
bb 
aa 
bb 
bb 
success 
success 
success 
success 
success 
success 

预期的输出应该

aa 
bb 
success 
bb 
success 
aa 
bb 
success 
bb 
success 
aa 
bb 
success 
bb 
success 

请建议我如何可以实现保持一个异步函数循环直到函数完成其执行。

回答

-1
count1 = [1,2,3]; 
count2 = [1,2]; 
async.forEach(count1, function(count1, callback){ 
    console.log("aa"); 
    async.forEach(count2, function(count2, callback1){ 
     console.log("bb"); 
     connection.query('INSERT INTO customers set ?', data,function(err, result){ 
      if(err){ 
       console.log(err); 
       callback1(err); 
      } 
      console.log("success") 
      callback1(null); 
     }, function(err, result){ 
      console.log(result); 
      callback1(err); 
     }); 
    }, function(err){ 
     callback(err); 
    }); 
}, function(err){ 
    callback(err); 
}); 
相关问题