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

185
Visualizações
Cómo esperar a que se inserten múltiples respuestas de búsqueda en la matriz antes de responder los datos al cliente en (Node Express JS)

Recibo los nombres de algunos animales en consulta separados por comas. Ahora tengo que llamar a una API que solo acepta un nombre de animal a la vez. Quiero llamar a la misma API una vez para cada animal y enviar los datos jsonificados en una matriz antes de responder a mi cliente.

Obtengo una matriz vacía en mi cliente durante la prueba y, según tengo entendido, eso sucede porque se ejecuta res.send () mientras la promesa espera ser resuelta.

Cualquier solución es muy apreciada.

 router.get('/animals', async (req, res) => { const mammalsArray = req.query.mammals.split(','); let final = []; await mammalsArray.forEach(async function(mammal) { const response = await fetch(`https://someapi.com/pedia?tag=${mammal}`); const json = await response.json(); final.push(json); }); res.send(final); });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La función async devuelve una promesa. Desea guardar todas las promesas y cuando se resuelven todas las promesas, desea continuar.

Puede esperar todas las promesas con Promise.all .

Usé map en lugar de forEach para asignar todos los valores de matriz a promesas.

 router.get('/animals', async(req, res) => { const mammalsArray = req.query.mammals.split(','); let final = []; let promisesArray = mammalsArray.map(async function(mammal) { const response = await fetch(`https://someapi.com/pedia?tag=${mammal}`); const json = await response.json(); final.push(json); }); await Promise.all(promisesArray); res.send(final); });

about 4 years ago · Juan Pablo Isaza Relatório
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