我一直在阅读有关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。 关于如何解决这个问题的任何想法?