A maneira mais simples de capturar corretamente o valor do
q
variável em um encerramento em JavaScript moderno é usar forEach
:queries.forEach(function(q) {
client.query(q[0], function(err, result) {
if(err) {
console.log(err);
} else {
q[1](result);
}
});
});
Se você não capturar o valor, seu código refletirá o último valor que
q
tinha, como a função de retorno de chamada executada posteriormente, no contexto da função que o contém. forEach
, usando uma função de retorno de chamada isola e captura o valor de q
para que possa ser avaliado corretamente pelo retorno de chamada interno.