PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Le query di database asincrone con PostgreSQL in Node non funzionano

Il modo più semplice per acquisire correttamente il valore di q La variabile in una chiusura nel JavaScript moderno consiste nell'usare forEach :

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

Se non acquisisci il valore, il tuo codice riflette l'ultimo valore che q aveva, come funzione di callback eseguita successivamente, nel contesto della funzione contenitore.

forEach , utilizzando una funzione di callback isola e acquisisce il valore di q quindi può essere valutato correttamente dal callback interno.