sql >> Databáze >  >> RDS >> PostgreSQL

Asynchronní databázové dotazy s PostgreSQL v Node nefungují

Nejjednodušší způsob, jak správně zachytit hodnotu q proměnnou v uzávěru v moderním JavaScriptu je použití forEach :

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

Pokud nezachytíte hodnotu, váš kód odráží poslední hodnotu q měl, jako funkce zpětného volání provedené později, v kontextu obsahující funkce.

forEach , pomocí funkce zpětného volání izoluje a zachytí hodnotu q tak to může být správně vyhodnoceno vnitřním zpětným voláním.



  1. Nastavte časové pásmo v PHP a MySQL

  2. Jak zajistím, aby starší verze OracleClient fungovala lokálně s .NET?

  3. Chyba SQL Server 7222:„V této instanci je povolen pouze poskytovatel SQL Server“

  4. Můžete automaticky vytvořit soubor mysqldump, který nevynucuje omezení cizího klíče?