regresar a la lección

Llamado async desde un non-async

Tenemos una función “regular”. ¿Cómo llamar async desde ella y usar el resultado?

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();