Software Development Notions

¿Como funciona async await?

April 11, 2021

Asíncrono “Que no tiene lugar en completa correspondencia temporal con otro proceso o con la causa que lo produce.”

Recientemente he estado desarrollando un proyecto basado en Node JS que usaba una librería externa en la que sus métodos devolvían promesas. Sin tener mucha experiencia con lo asíncrono en javascript, para mi la forma más simple de entenderlo y aplicarlo correctamente fue la siguiente:

Supongamos que tienes una promesa como por ejemplo:

function resolveAfter2Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('resolved');
    }, 2000);
  });
}

Hasta que dicha promesa no sea resuelta, es decir, que en el caso anterior se hayan completado los dos segundos, no tendríamos el resultado de dicha promesa (resolved). Lo que implica que cualquier otro módulo que llame a esta función necesita funcionar de forma asíncrona, para poder alterar la correspondencia temporal. Digamos que vamos a obligar al motor de javascript que espere hasta que nuestra promesa sea resuelta.

💡 El motor de javascript es síncrono 💡

async function asyncCall() {
  console.log('calling');
  const result = await resolveAfter2Seconds();
  console.log(result);
  // expected output: "resolved"
}

Hemos utilizado async para indicar que la función tendrá un comportamiento asíncrono, y await para especificar que esperaremos hasta que la promesa que retorna la función llamada sea resuelta.

Fuente consultada: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function


Welcome to my blog about Software Development! I would like to invite you to learning with me 👨‍💻

Search all posts