GoConqr has a new look! Let us know what you think.

Module 5 of 5 · Text

async / await

Ezequiel del Río

Cómo usar Async / Await para escribir un código mejor en JavaScript

 

async: La palabra “async” ante una función significa solamente una cosa: que la función siempre devolverá una promesa. Otros valores serán envueltos y resueltos en una promesa automáticamente.

Por ejemplo, esta función devuelve una promesa resuelta con el resultado de 1

const returOne = async () => {
  return 7;
}

returOne().then(console.log()); // 7

Es lo mismo que esto:

const returTwo = () => {
  return Promise.resolve (2);
}

returTwo().then(console.log()); // 2

async se asegura de que la función devuelva una promesa, o envuelve las no promesas y las transforma en una. Bastante simple, ¿correcto? Pero no solo eso. Hay otra palabra, await, que solo trabaja dentro de funciones async y es muy interesante. await hace que JavaScript espere hasta que la promesa responda y devuelve su resultado.

OJO con esto:

const showNumber = () => {
  return new Promise(resolve => {
    setTimeout(()=> {
      resolve('999999');
    }, 5000)
  })
}

const msg = async () => {
  const msg =await showNumber(); ---> Esperará 5 segundos y luego mostrará 'Message' '999999'
  console.log('Message', msg);
}
msg().then(console.log('HOOOOOOOLAAAAAAAA')); ---> El then no hace que se espere los 5 segundos....

ASINCRONO: pueden suceder varias cosas relacionadas sin esperar a que se complete la acción anterior.

Cómo funcionan las promesas en JavaScript

El objeto Promise en JavaScript representa una operación asíncrona (y su valor resultante) que eventualmente se completará (o fallará).

Una Promise puede estar en uno de estos estados:

  • pending (pendiente): estado inicial, ni cumplida ni rechazada.
  • fulfilled (cumplida): significa que la operación se completó con éxito.
  • rejected (rechazada): significa que la operación falló.

Link interesante: 

Más link

 

Instructions

You must submit an attempt for this quiz to progress. You can submit it after the last question.

Go to the chosen module

Feedback

What is it about?

What do you think of the new look?

How do you like it?