Llamado async desde un non-async
Tenemos una función “regular” llamada f
. ¿Cómo llamar la función async
, wait()
y usar su resultado dentro de f
?
async function wait() { await new Promise(resolve => setTimeout(resolve, 1000)); return 10; } function f() { // ¿...qué escribir aquí? // Necesitamos llamar async wait() y esperar a obtener 10 // recuerda, no podemos usar "await" }
P.D. La tarea es técnicamente muy simple, pero la pregunta es muy común en desarrolladores nuevos en async/await.
Este es el caso cuando saber cómo trabaja por dentro es útil.
Simplemente trata el llamado async
como una promesa y añádele .then
:
async function wait() { await new Promise(resolve => setTimeout(resolve, 1000)); return 10; } function f() { // muestra 10 después de 1 segundo wait().then(result => alert(result)); } f();