Som .query()
er en asynkron metode, vil du ikke være i stand til at return
værdien som tilbagekaldet kaldes efter return
evalueres.
Du bliver nødt til at fortsætte callback
mønster:
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Rettelse:Ser ud til client.end()
vil tillade, at aktuelle forespørgsler afsluttes, før forbindelsen faktisk lukker.
Dog kalder .end()
inde i tilbagekaldet er almindeligt for mange API'er, da de vil afskære eventuelle afventende handlinger.