2017-05-25 117 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); 
}); 
相關問題