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.