Som .query()
är en asynkron metod, kommer du inte att kunna return
värdet som återuppringning kommer att kallas efter return
utvärderas.
Du måste fortsätta 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();
}
Rättelse:Verkar client.end()
kommer att tillåta aktuella frågor att slutföras innan anslutningen faktiskt stängs.
Dock anropar .end()
inuti återuppringningen är vanligt för många API:er eftersom de kommer att avbryta eventuella väntande åtgärder.