Der einfachste Weg, den Wert von q
richtig zu erfassen Variable in einer Closure in modernem JavaScript ist die Verwendung von forEach
:
queries.forEach(function(q) {
client.query(q[0], function(err, result) {
if(err) {
console.log(err);
} else {
q[1](result);
}
});
});
Wenn Sie den Wert nicht erfassen, spiegelt Ihr Code den letzten Wert wider, den q
hatte, wie die später ausgeführte Callback-Funktion, im Kontext der enthaltenden Funktion.
forEach
, isoliert und erfasst den Wert von q
mithilfe einer Callback-Funktion damit es vom inneren Rückruf richtig ausgewertet werden kann.