Javascript 获取回调函数sql的值

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

我对这个变量有问题,我想检查它们是否相同,如果是,我希望整个函数“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;
  }    
}

我认为有两种方法

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()
调用完成之前运行。啊,有什么办法管理这一点吗?谢谢