Node.js回调顺序
我一直在Node.js中编写代码:Node.js回调顺序,node.js,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(
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);
var sql='选择1作为re';
对于(var i=0;i,您需要以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');
});
var sql='选择1作为re';
var计数=0;
异步的(
函数(){
返回计数<10;
},
功能(完成){
计数++;
查询(sql,函数(err,行){
如果(错误)
rollback(函数(e){done();});
否则{
console.log('foo');
完成();
}
});
},
功能(err){
console.log('bar');
});
现在,这将是连续的。再次,如果这不是您要问的问题。我建议您更新您的问题,以便我们更好地了解问题所在,或者至少了解您的意图。对不起,但我不知道您要问什么。您是说您想要这两个控制台。log()
要按顺序输出的语句?