sql >> Base de Datos >  >> RDS >> PostgreSQL

Las consultas de base de datos asíncronas con PostgreSQL en el nodo no funcionan

La forma más sencilla de capturar correctamente el valor de la q variable en un cierre en JavaScript moderno es usar forEach :

queries.forEach(function(q) {
    client.query(q[0], function(err, result) {
      if(err) {
        console.log(err);
      } else {
        q[1](result);
      }
    });
 });

Si no captura el valor, su código refleja el último valor que q tenía, como la función de devolución de llamada ejecutada más tarde, en el contexto de la función contenedora.

forEach , mediante el uso de una función de devolución de llamada aísla y captura el valor de q para que pueda ser evaluado correctamente por la devolución de llamada interna.