Dưới dạng .query()
là một phương thức không đồng bộ, bạn sẽ không thể return
giá trị khi gọi lại sẽ được gọi là sau return
được đánh giá.
Bạn sẽ phải tiếp tục callback
mẫu:
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Sửa:Có vẻ như client.end()
sẽ cho phép các truy vấn hiện tại kết thúc trước khi kết nối thực sự đóng.
Tuy nhiên, gọi .end()
bên trong lệnh gọi lại là điều phổ biến đối với nhiều API vì chúng sẽ loại bỏ mọi hành động đang chờ xử lý.