NodeJS等待异步

时间:2015-11-22 18:02:29

标签: javascript node.js postgresql

我一直在阅读有关NodeJS和回调的内容,但我一直无法掌握它。 Wait for function他们在这里解释了为什么会发生这种情况,但我不明白如何使用2个嵌套函数来完成它。

我有一个函数调用另一个函数,它将从PostgreSQL Simple中选择一行。 问题是,查找此行的函数总是在选择完成之前返回,因此它不起作用。

function testing() {
  var p=getTrackerId("123");
  console.log(p);
}



function getTrackerId(id) {
  var tracker_id="TEST";
  pg.connect(conString, function(err, client, done) {
    if(err) {
      return console.error('error fetching client from pool', err);
    }   
    tracker_id="THIS1";
    var q = squel.select()
      .from("access")
      .where("unique_id = ?",id)
      .toString();

    client.query(q, function(err, result) {
      if(result.rows[0]!=undefined){
        tracker_id=result.rows[0].tracker_id;
      }

      done();
      tracker_id="THIS3";
      if(err) {
        return console.error('error running query', err);
      }
    });


  });
  return tracker_id;
}  

此功能将始终返回" TEST"因此,p将永远是TEST。 关于如何解决这个问题的任何想法?

0 个答案:

没有答案