PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Asynchrone Datenbankabfragen mit PostgreSQL in Node funktionieren nicht

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.