Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

235
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!