2014-12-04 5 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

ответ

0

Вам необходимо обернуть свой код либо в async, либо в форме promise.

Например:

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'); 
    }); 

Теперь это будет последовательным. Опять же, если это не то, о чем вы просили. Я предлагаю обновить свой вопрос, чтобы мы лучше поняли, в чем проблема, или, по крайней мере, ваши намерения делать.

Смежные вопросы