JavaScript

JavaScript

Tutorial JavaScript: Async / Await

JavaScript async await: manejo asincrónico. Aprende a manejar asincronía en JavaScript utilizando async y await con ejemplos detallados.

Los conceptos de async y await en JavaScript es parte fundamental de la programación asíncrona, que permite que las operaciones no bloqueantes se lleven a cabo sin interrumpir el flujo principal del programa.

Funciones asíncronas (async)

Una función asíncrona se declara con la palabra clave async antes de la palabra clave function o antes de los paréntesis al usar una función flecha. Las funciones asíncronas siempre retornan una promesa. Si el valor retornado dentro de la función no es una promesa, JavaScript automáticamente lo envuelve en una promesa resuelta con ese valor.

Aquí se muestra una función asíncrona básica:

async function miFuncion() {
    return "Hola Mundo";
}

// La función anterior es equivalente a:
/*
function miFuncion() {
    return new Promise((resolve, reject) => resolve("Hola Mundo"));
}
*/

// Imprime: Hola Mundo
miFuncion().then((valor) => console.log(valor));

Operador de espera (await)

El operador await sólo puede ser utilizado dentro de una función async. Este operador hace una pausa en la ejecución de la función hasta que la promesa se resuelva o rechace, luego retorna el resultado de la promesa.

async function miFuncion() {
    // Declarar promesa que se resuelva tras 1 segundo
    let promesa = new Promise((resolve, reject) => {
        setTimeout(() => resolve("Hola Mundo"), 1000)
    });

    let resultado = await promesa; // Espera hasta que la promesa se resuelva

    console.log(resultado); // Imprime: Hola Mundo
}

miFuncion();

En el código anterior, la función miFuncion pausa su ejecución en let resultado = await promesa;, hasta que la promesa se resuelva. Luego la ejecución continúa con console.log(resultado);.

Manejo de errores

Es importante manejar adecuadamente los errores en la programación asíncrona. Para ello se puede utilizar try/catch alrededor de las promesas.

Aquí se muestra un ejemplo:

async function miFuncion() {
    try {
        let promesa = new Promise((resolve, reject) => {
            setTimeout(() => reject("Ha ocurrido un error"), 1000)
        });

        let resultado = await promesa; // Espera hasta que la promesa se resuelva o se rechace

    } catch(error) {
        console.log(error); // Imprime: Ha ocurrido un error
    }
}

miFuncion();

En este código, si la promesa se rechaza, el error es capturado y manejado por el bloque catch.

En resumen, async y await son herramientas poderosas en JavaScript que simplifican el trabajo con operaciones asíncronas, haciendo que el código sea más fácil de leer y escribir.

Certifícate en JavaScript con CertiDevs PLUS

Ejercicios de esta lección Async / Await

Evalúa tus conocimientos de esta lección Async / Await con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Funciones flecha

JavaScript
Puzzle

Polimorfismo

JavaScript
Test

Array

JavaScript
Código

Transformación con map()

JavaScript
Test

Introducción a JavaScript

JavaScript
Test

Gestor de tareas con JavaScript

JavaScript
Proyecto

Manipulación DOM

JavaScript
Test

Funciones

JavaScript
Test

Funciones flecha

JavaScript
Código

Async / Await

JavaScript
Código

Creación y uso de variables

JavaScript
Test

Excepciones

JavaScript
Puzzle

Promises

JavaScript
Código

Funciones cierre (closure)

JavaScript
Test

Herencia

JavaScript
Puzzle

Herencia

JavaScript
Test

Estructuras de control

JavaScript
Código

Selección de elementos DOM

JavaScript
Test

Modificación de elementos DOM

JavaScript
Test

Filtrado con filter() y find()

JavaScript
Test

Funciones cierre (closure)

JavaScript
Puzzle

Funciones

JavaScript
Puzzle

Mapas con Map

JavaScript
Test

Reducción con reduce()

JavaScript
Test

Callbacks

JavaScript
Puzzle

Manipulación DOM

JavaScript
Puzzle

Promises

JavaScript
Test

Async / Await

JavaScript
Test

Eventos del DOM

JavaScript
Puzzle

Async / Await

JavaScript
Puzzle

Promises

JavaScript
Puzzle

Filtrado con filter() y find()

JavaScript
Código

Callbacks

JavaScript
Test

Creación de clases y objetos Restaurante

JavaScript
Código

Reducción con reduce()

JavaScript
Código

Filtrado con filter() y find()

JavaScript
Puzzle

Reducción con reduce()

JavaScript
Puzzle

Conjuntos con Set

JavaScript
Puzzle

Herencia de clases

JavaScript
Código

Eventos del DOM

JavaScript
Test

Clases y objetos

JavaScript
Puzzle

Modificación de elementos DOM

JavaScript
Puzzle

Mapas con Map

JavaScript
Puzzle

Funciones

JavaScript
Código

Tipos de datos

JavaScript
Test

Clases y objetos

JavaScript
Test

Array

JavaScript
Test

Conjuntos con Set

JavaScript
Test

Array

JavaScript
Puzzle

Encapsulación

JavaScript
Puzzle

Clases y objetos

JavaScript
Código

Uso de operadores

JavaScript
Puzzle

Uso de operadores

JavaScript
Test

Estructuras de control

JavaScript
Test

Excepciones

JavaScript
Test

Transformación con map()

JavaScript
Puzzle

Funciones flecha

JavaScript
Test

Selección de elementos DOM

JavaScript
Puzzle

Encapsulación

JavaScript
Test

Mapas con Map

JavaScript
Código

Creación y uso de variables

JavaScript
Puzzle

Polimorfismo

JavaScript
Puzzle

Tipos de datos

JavaScript
Puzzle

Estructuras de control

JavaScript
Puzzle

Todas las lecciones de JavaScript

Accede a todas las lecciones de JavaScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Certificados de superación de JavaScript

Supera todos los ejercicios de programación del curso de JavaScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender el concepto de funciones asíncronas (async) en JavaScript y su relación con las promesas.
  2. Aprender a utilizar la palabra clave async para declarar funciones asíncronas.
  3. Entender cómo el valor retornado dentro de una función async se envuelve automáticamente en una promesa.
  4. Conocer el operador await y cómo se utiliza para pausar la ejecución hasta que una promesa se resuelva o rechace.
  5. Aprender a manejar errores utilizando try/catch en funciones async.
  6. Comprender cómo async y await simplifican y mejoran la legibilidad del código en situaciones con operaciones asíncronas.