Cách đơn giản nhất để nắm bắt đúng giá trị của q
biến trong một bao đóng trong JavaScript hiện đại là sử dụng forEach
:
queries.forEach(function(q) {
client.query(q[0], function(err, result) {
if(err) {
console.log(err);
} else {
q[1](result);
}
});
});
Nếu bạn không nắm bắt được giá trị, mã của bạn phản ánh giá trị cuối cùng q
đã, như hàm gọi lại được thực thi sau đó, trong ngữ cảnh của hàm chứa.
forEach
, bằng cách sử dụng hàm gọi lại sẽ cô lập và nắm bắt giá trị của q
vì vậy nó có thể được đánh giá đúng bởi lệnh gọi lại bên trong.