Il modo più semplice per acquisire correttamente il valore di q
La variabile in una chiusura nel JavaScript moderno consiste nell'usare forEach
:
queries.forEach(function(q) {
client.query(q[0], function(err, result) {
if(err) {
console.log(err);
} else {
q[1](result);
}
});
});
Se non acquisisci il valore, il tuo codice riflette l'ultimo valore che q
aveva, come funzione di callback eseguita successivamente, nel contesto della funzione contenitore.
forEach
, utilizzando una funzione di callback isola e acquisisce il valore di q
quindi può essere valutato correttamente dal callback interno.