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.