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

95
Visualizações
Secuencia de ejecución de la función Async/Await

Afirmo que no soy un experto en JavaScript, y ahora estoy empezando a profundizar en él.

Este post pretende aclarar algunas dudas sobre las funciones async/away que recién empiezo a profundizar.

El siguiente ejemplo me deja perplejo sobre la secuencia de ejecución que parece, según los registros impresos en la consola, diferente de lo que esperaba.

Antes de exponer mi duda y mi pregunta de aclaración les muestro mi código de ejemplo:

 async function fetchAlbum(id){ let album; album = await fetch(albumUrl + '/' +id) .then( resp => resp.json()) .then(albumcontent => albumcontent); console.log('Concrete Value 1',album); //Here is printed the concrete value thanks to await is not undefined return album; //Here the concrete value is wrapped by a promise (the value is returned to the caller in the form of a promise) } let alb = fetchAlbum(1); console.log('Promise 1',alb); //Print a promise... will be the first logged (!?) alb.then(alb => console.log('Concrete Value 2',alb)); //We have the album again as a concrete value (the album object)

Creé una función asíncrona fetchAlbum dentro de la cual resuelvo las promesas devueltas por la API fetch() con el prefijo await. Por lo tanto, espero que en la llamada fetchAlbum (1) el código espere hasta que se realice el "álbum de devolución" dentro de la función async fetchAlbum (id). Pero en realidad, este no es el caso. Mirando las pistas en la consola, veo:

"Promise 1", luego "Concrete Value 1" y finalmente "Concrete Value 2", este último impreso por la función de devolución de llamada de la promesa devuelta por la función async fetchAlbum.

Lo que entiendo es que JavaScript (ES6), simplemente llamado función asíncrona, devuelve la promesa continuando con el flujo de ejecución siguiendo la llamada let alb = fetchAlbum (1); y en cuanto termine la cadena de promesas, imprimirá "Valor Concreto 1" y finalmente, pasará por "álbum de regreso".

La pregunta es, suponiendo que mi suposición sea correcta, ¿cómo JavaScript devuelve inmediatamente la promesa (en estado pendiente) sin pasar por el "retorno"?

Todavía estoy un poco confundido y cualquier sugerencia para entender será muy bienvenida para mí.

Espero haber expuesto mi perplejidad y mi pregunta de la forma más comprensible posible.

Muchas gracias.

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