Javascript 获取回调函数sql的值
我对这个变量有问题,我想检查它们是否相同,如果是,我希望整个函数“overeni”返回true,但是变量没有定义,我几乎尝试了所有方法Javascript 获取回调函数sql的值,javascript,sql,Javascript,Sql,我对这个变量有问题,我想检查它们是否相同,如果是,我希望整个函数“overeni”返回true,但是变量没有定义,我几乎尝试了所有方法 function overeni(id,auth){ var sqlid; var sqlauth; var sql = "SELECT id FROM login WHERE auth = " + client.escape(auth); client.query(sql ,function(err,res){ conso
function overeni(id,auth){
var sqlid;
var sqlauth;
var sql = "SELECT id FROM login WHERE auth = " + client.escape(auth);
client.query(sql ,function(err,res){
console.log(res[0].id);
sqlid = res[0].id;
});
var sql = "SELECT auth FROM login WHERE id = " + client.escape(id);
client.query(sql ,function(err,res){
console.log(res[0].auth);
sqlauth = res[0].auth;
});
if(id == sqlid && auth == sqlauth){
return true;
}
else{
return false;
}
}
我认为有两种方法 1) 使用回调而不是返回
function overeni(id,auth, callback){
....
client.query(sql ,function(err,res){
.....
if (sqlid && sqlauth) {callback(sqlid, sqlauth);}
}))
2) 或者使用一些延迟库(如jquery/when/Q等)这是因为
client.query()
调用是异步的,这意味着您的if/else子句将在两个.query()
调用完成之前运行。啊,有什么办法管理这一点吗?谢谢