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

236
Visualizações
¿Por qué foreach se comporta de forma asíncrona?

Estoy aprendiendo node.js y estoy confundido acerca de cómo funciona async. Tengo entendido que Array.foreach está bloqueando, pero luego el siguiente código no funciona como se esperaba.

testfunc.ts:

 export const testfunc = async (numArray: number[]) => { let count = 0; numArray.forEach(async (elem) => { if (elem % 2 === 0) { await new Promise((r) => setTimeout(r, 2000)); console.log(elem); count = count + 1; } }); console.log(`printed ${count}`); };

enviarmensaje.ts:

 import { testfunc } from "./testfunc"; const callTestFunc = async () => { await testfunc([1, 2, 3, 4, 5, 6]); }; callTestFunc();

Esperaba una salida de:

 2 4 6 printed 3

Pero, estoy recibiendo

 printed 0 2 4 6

¿Puede alguien explicarme esto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Con forEach , haces tus cosas en una función de devolución de llamada y esta devolución de llamada lleva algunas veces. Así que es asíncrono.

En consecuencia, forEach no se puede usar para tareas sincrónicas.

Esto también es lo mismo para un bucle for que está llamando a una función que es asíncrona. Por ejemplo, si ejecuta una consulta SQL INSERT dentro de un bucle for, no puede estar seguro de que INSERT se ejecute en el orden del bucle.

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