作者tas72732002 (葱头)
看板Ajax
标题[问题] 关於node callback机制
时间Sun Oct 21 12:15:15 2012
请问一下,最近研究node遇到个问题
假设玩家目前有money : 10, 是否会发生当'updateCoin1' event发出後,执行的query还没执行callback,就去执行'updateCoin2' event的query,
导致updateCoin1执行callback後,将money变成0,而updateCoin2执行callback把money更新成-10这样的错误,
请问运作机制是我说的这样吗??db.query皆会丢到背景执行??
on.(cmd === 'updateCoin1') {
db.query('select * from user',function(err, rows){
if(err){
return false;
}
if(rows.money >= 5){
db.query('update user set money=momey-5',function(err, rows){
if(err){
return false;
}
return true;
});
}
});
}
on.(cmd === 'updateCoin2') {
db.query('select * from user',function(err, rows){
if(err){
return false;
}
if(rows.money >= 10){
db.query('update user set money=momey-10',function(err, rows){
if(err){
return false;
}
return true;
});
}
});
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.248.236.198
1F:→ fillano:用nodejs + flow control关键字google一下 12/07 18:12