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

233
Vistas
Si uso async/await, no se ejecuta en orden

Tengo una pregunta sobre la ejecución async/await.

códigos de ejemplo

 async firstMethod(){ new Promise((resolve, reject)) => { setTimeout(() => { resolve("test1"); }, 3000); }); } async secondMethod() { new Promise((resolve, reject)) => { setTimeout(() => { resolve("test2"); }, 1000); }); } await firstMethod(); await secondMethod();

Entonces, cuando se ejecutan los dos métodos, se obtienen los siguientes resultados.

 test2 test1

Sin embargo, si se adjunta una declaración, el valor del resultado es el siguiente.

 async firstMethod(){ return new Promise((resolve, reject)) => { setTimeout(() => { resolve("test1"); }, 3000); }); } async secondMethod() { return new Promise((resolve, reject)) => { setTimeout(() => { resolve("test2"); }, 1000); }); } await firstMethod(); await secondMethod();
 test1 test2

¿Porqué es eso? Te agradecería si pudieras explicarlo.

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

0

En el primer caso, solo espera las promesas externas (que son las funciones firstMethod y secondMethod ) y las promesas internas creadas por new Promise no se esperan y simplemente se ejecutan hasta completarse en segundo plano.

En el segundo caso, debido al desenvolvimiento de la promesa , espera las promesas internas devueltas junto con las promesas de funciones externas.

about 4 years ago · Juan Pablo Isaza Denunciar

0

La razón por la que en el primer ejemplo esas 2 funciones no se ejecutan en orden es porque no estás esperando nada. Si intenta eliminar el async de la definición de la función en el primer ejemplo, obtendrá el mismo resultado porque la función no necesita el async porque no requiere una await . Lo que podría hacer para obtener el mismo resultado que el segundo ejemplo es agregar una await antes de la new Promise .

Nota: Tampoco necesita el async en el segundo ejemplo porque no está esperando nada, solo está devolviendo una Promise en la que espera fuera del alcance.

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