2014-12-04 32 views
-1

我一直在編碼的Node.js:Node.js的回調訂貨

var sql = ' SELECT 1 AS re'; 
for(var i=0;i<10;i++){ 
    connection.query(sql,function(err,rows){ 
     if(err){connection.rollback(function (e) {throw err;});} 
     else{ 
     console.log('foo'); 
     } 
    }); 
} 
setTimeout(function(){ console.log('b }, 50); 

我可以輸出排隊到底是什麼?像:foo --> bar

+0

對不起,但我不知道你在問什麼。你是說你想要兩個'console.log()'語句按順序輸出嗎? – jakerella 2014-12-04 13:39:10

回答

0

您需要將代碼包裝在asyncpromise的表單中。

比如:

var sql = 'SELECT 1 AS re'; 

var count = 0; 
async.whilst(
    function() { 
    return count < 10; 
    }, 
    function(done) { 
    count++; 
    connection.query(sql, function(err, rows) { 
     if(err) 
     connection.rollback(function(e) { done(); }); 
     else { 
     console.log('foo'); 
     done(); 
     } 
    }); 
    }, 
    function(err) { 
    console.log('bar'); 
    }); 

現在,這將是連續的。再次,如果這不是你問的。我建議請更新您的問題,以便我們更好地瞭解問題所在,或者至少您有什麼打算。