Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

92
Visualizações
Cómo asegurarse de que una consulta se ejecute después de la otra en la función javascript asíncrona

Como puede ver a continuación, configuré una base de datos de Postgres y creé un perfil de usuario para cada usuario. Luego, obtengo la ID de usuario y establezco el resultado de esa consulta en 'res'. A partir de ahí, saco el valor de ID de usuario y ejecuto otra consulta usándolo. El único problema es este: creo que a veces estas declaraciones se ejecutan fuera de orden, porque al usuario se le devuelve una cadena vacía.

 app.post('/createUser', async function (request, response) { const client = await pool.connect(); let phoneNumber = request.body.phoneNumber; try { await client.query('BEGIN') await client.query(`INSERT INTO table (p_num) VALUES($1) ON CONFLICT DO NOTHING RETURNING *`, [phone]); //create a row in 'table' with user id and some values related to the user let res = await client.query('SELECT * FROM table WHERE p_num = ($1)', [phone]) //fetches user id from the recently generated row in 'table' var id = 0; // res.rows should only return one row because the ID is a unique generated identifier, it's hacky but I wasn't sure how to do this better for (row of res.rows) { id = row.id; } await client.query('INSERT INTO table2 (uid) VALUES($1) ON CONFLICT DO NOTHING', [id]) //use the user id to run a query on another table await client.query('COMMIT') } catch (err) { await client.query('ROLLBACK') console.log(err) } finally { client.release() response.send(String(id)) } });

\d tabla devuelve:

 Column | Type | Collation | Nullable | Default --------------+---------+-----------+----------+---------------------------------------- id | integer | | not null | nextval('userstable_id_seq'::regclass) phonenumber | text | | | total_logins | integer | | not null | 0 Indexes: "userstable_pkey" PRIMARY KEY, btree (id) "unique_p_num" UNIQUE CONSTRAINT, btree (p_num)
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda