AD

¿Ya dominas lo básico? Un curso estructurado de JavaScript es la vía rápida para dar el salto.

Ver cursos de JavaScript en Udemy

Enlace de afiliado. No te cuesta nada extra.

🟨Lecciones de JavaScript
Lección 13 / 69

Código asíncrono (Promise / async y await)

En esta lección verás lo básico del código asíncrono en JavaScript (las Promises y async/await) para manejar correctamente operaciones que llevan tiempo, como las peticiones de red. Está dirigida a quien busca «uso de async await en JavaScript» o «qué es una Promise en JavaScript».

Para tratar operaciones que tardan (como las peticiones de red), JavaScript usa un mecanismo llamado Promise. Dentro de una función marcada como async, puedes usar await para «esperar» a que llegue el resultado de una Promise. Es un mecanismo para expresar procesos con retardo, como «esperar a que llegue la comida después de pedirla». Si no usas await, la línea siguiente se ejecuta sin esperar a que termine la operación.

El código de ejemplo construye una función wait con una Promise que espera un tiempo determinado, y dentro de la función main espera 300 milisegundos con await wait(300). Al ejecutarlo verás que la segunda línea aparece con un pequeño retardo. Fíjate también en que la llamada a main() lleva su propio await, de modo que el programa espera a que termine antes de continuar.

Un tropiezo habitual al empezar es intentar usar await fuera de una función, o dentro de una que no está marcada como async, lo que provoca un error. Recuerda la regla: await solo se puede usar dentro de una función async. Otro fallo común es intentar usar un resultado antes de que la operación asíncrona haya terminado, obteniendo un undefined inesperado.

En el desarrollo real, toda clase de comunicaciones y esperas —pedir datos a una API, leer un archivo, ejecutar algo tras un retardo— se escribe con Promises y async/await. Al construir una aplicación web que se comunica con una API, esta forma de pensar el código asíncrono es un conocimiento básico e inevitable.

Cuando quieres lanzar varias operaciones asíncronas a la vez y esperar a que terminen todas, usas Promise.all([tarea1, tarea2]). Es más rápido que esperarlas una a una en secuencia, y es una técnica habitual para ejecutar varias peticiones de API en paralelo.

Si una operación esperada con await falla, puedes capturar el error con un try...catch normal. Poder tratar los errores del código síncrono y asíncrono con la misma sintaxis es una de las razones por las que se prefiere async/await frente a escribir Promises directamente.

JavaScript
SALIDA

💡 Todo lo que pases a console.log() aparece en la salida de abajo.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)