Den enkleste måde at fange værdien af q
korrekt variabel i en lukning i moderne JavaScript er at bruge forEach
:
queries.forEach(function(q) {
client.query(q[0], function(err, result) {
if(err) {
console.log(err);
} else {
q[1](result);
}
});
});
Hvis du ikke fanger værdien, afspejler din kode den sidste værdi, som q
havde, som tilbagekaldsfunktionen udført senere, i sammenhæng med den indeholdende funktion.
forEach
, ved at bruge en tilbagekaldsfunktion isolerer og fanger værdien af q
så det kan evalueres korrekt ved det indre tilbagekald.