PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consultas de banco de dados assíncronas com PostgreSQL no Node não funcionam


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.