我对这些变量有问题,我想检查它们是否相同,如果是,我希望整个函数“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){
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;
}
}
答案 0 :(得分:0)
我认为有两种方式
1)使用回调而不是返回
function overeni(id,auth, callback){
....
client.query(sql ,function(err,res){
.....
if (sqlid && sqlauth) {callback(sqlid, sqlauth);}
});
2)或使用一些延迟库(如jquery / when / Q等)