Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

146
Vistas
¿Por qué el orden de la matriz cuando se inserta en la base de datos usando map, forEach y for loop es diferente?

Tengo una matriz [1,2,3,4,5] y cuando la inserto en la base de datos, excepto que recibo un resultado como [1,2,3,4,5] en la base de datos. Pero solo el bucle para darme un resultado esperado, map() y forEach() siempre me dan una matriz desordenada como [1,3,4,5,2] o [4,3,2,5,1] y así sucesivamente. Este es mi código:

 arrayChild.map(async item => { await this.repository.save(item) }); arrayChild.forEach(async item => { await this.repository.save(item) }); for (let i = 0; i < arrayChild.length; i++) { await this.repository.save(arrayChild[i]) }

Por favor, dame la razón. Gracias por su atención

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

porque los métodos map y forEach no manejan la función asíncrona que pasó de forma async await .

Cuando verifique el polyfill de ambos métodos, encontrará una línea como esta callback.call(T, kValue, k, O); . Entonces, básicamente, solo ejecuta la callback de llamada. Si la callback de llamada es un método asíncrono, no espera a que se realice su ejecución. En cambio, continúa ejecutando otros códigos.

Entonces, cuando guarda su conjunto de datos en la base de datos, sus devoluciones de llamada dentro del map y forEach solo emiten algunas consultas, el orden final de ejecución de la base de datos puede ser incierto.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Debido a que await no funciona en los métodos forEach y map, no es asíncrono. Por lo tanto, cuando usa los métodos await en forEach o map para guardar datos en db, ejecutará los bucles simultáneamente y los resultados serán desordenados.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda