Sobes.tech
Junior

Cuéntame sobre la construcción async/await en JavaScript.

sobes.tech AI

Respuesta de la IA

async/await — azúcar sintáctico sobre promesas, diseñado para escribir código asíncrono de manera más sencilla que parece sincrónico.

Una función marcada con la palabra async siempre devuelve una promesa. Dentro de una función async se puede usar la palabra clave await.

El operador await se usa antes de la llamada a una promesa. Suspende la ejecución de la función async hasta que la promesa se resuelva o se rechace. El resultado de la promesa (éxito o error) se devuelve con await.

Si la promesa a la que se le pone await se rechaza, esto genera una excepción que se puede capturar con un bloque try...catch.

// Ejemplo de uso de async/await
async function fetchData() {
  try {
    // Espera a que la operación asíncrona (por ejemplo, una solicitud a la API) se complete
    const response = await fetch('https://api.example.com/data');
    // Analiza la respuesta en JSON
    const data = await response.json();
    // Muestra los datos recibidos
    console.log(data);
  } catch (error) {
    // Captura cualquier error
    console.error('Error al obtener datos:', error);
  }
}

// Llamada a la función async
fetchData();

// Función async que devuelve una promesa
async function getValue() {
  return 10; // Esto se envuelve automáticamente en Promise.resolve(10)
}

getValue().then(value => console.log(value)); // Mostrará 10

Ventajas de async/await:

  • Legibilidad del código: El código asíncrono se parece más al síncrono
  • Manejo de errores: Es más fácil usar bloques try...catch estándar.
  • Menos anidamiento: Se evita la "tortura de callbacks" o largas cadenas .then().

Es importante recordar que await solo puede usarse dentro de funciones async.