DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js💊| #128: Explica este código JavaScript

Explica este código JavaScript

Dificultad: Intermedio

const f = async() => {
  return await 5;
}
console.log(f())
Enter fullscreen mode Exit fullscreen mode

A. Promise { <pending> }
B. Promise { <fulfill> }
C. Promise { <reject> }
D. 5

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
A. Promise { <pending> }

Las funciones asíncronas siempre regresan una promesa.
Hasta que no consumamos la promesa de la manera adecuada esta se quedará en estado pendiente, no se resolvió pero tampoco se rechazo, entro como en una especie de limbo.

Dicho esto si llamamos a la función como en el ejemplo no podemos acceder al valor 5.

Una posible solución para obtener le resultado deseado es usar métodos de promesas:

const f = async() => {
  return await 5;
}

f()
  .then(x => console.log(x)); // 5
Enter fullscreen mode Exit fullscreen mode

O también podemos usar async... await:

const f = async() => {
  return await 5;
}

const res = async () => {
  const salida = await f();
  console.log(salida)
}

res(); //5
Enter fullscreen mode Exit fullscreen mode

Con ambas sintaxis cumplimos nuestro cometido de mostrar el valor de 5 por consola.