Cara paling sederhana untuk menangkap nilai q . dengan benar variabel dalam penutupan dalam JavaScript modern adalah menggunakan forEach :
queries.forEach(function(q) {
client.query(q[0], function(err, result) {
if(err) {
console.log(err);
} else {
q[1](result);
}
});
});
Jika Anda tidak menangkap nilainya, kode Anda mencerminkan nilai terakhir yang q memiliki, sebagai fungsi panggilan balik yang dijalankan kemudian, dalam konteks fungsi yang mengandung.
forEach , dengan menggunakan fungsi panggilan balik mengisolasi dan menangkap nilai q sehingga dapat dievaluasi dengan benar oleh panggilan balik bagian dalam.