const findNum = async ()=>{ setTimeout(()=>{ return 5; },1000)}; const getNum = async ()=>{ const num = await findNum(); return num; } const number = getNum(); console.log(number); number.then((result)=>{ console.log(result); });Intenté tantas respuestas de desbordamiento de pila,
como la palabra clave "entonces", ¡pero no funciona!
El resultado que obtuve siempre fue así o solo algunos errores.
Promise { <pending> } undefined¿Cómo podría obtener el resultado de la Promesa?
El problema que tiene es que setTimeout tiene una devolución de llamada y devuelve el valor a la devolución de llamada, no a findNum
setTimeout(()=>{ return 5; },1000)};Como puede ver, hay una función de flecha anónima que le devuelve su valor.
El problema aquí es que realmente no puedes hacer que esto funcione con async / await , deberías usar new Promise aquí:
const findNum = ()=> new Promise(res => setTimeout(res, 1000, 5))Esto debería funcionar.
Además, las funciones async siempre devuelven promesas sin importar qué