Sobes.tech
Junior

¿Qué formas de trabajar con código asíncrono conoces?

sobes.tech AI

Respuesta de la IA

  • Funciones de callback: Pasar una función como argumento a otra función, que será llamada después de completar una operación asíncrona. Pueden llevar a "callback hell".
  • Promesas (Promises): Objetos que representan la finalización (o fallo) de una operación asíncrona y su valor resultante. Ofrecen una gestión más estructurada de la asincronía.
    // Ejemplo de uso de promesa
    fetch('/api/data')
      .then(response => response.json()) // Manejo de respuesta exitosa
      .then(data => console.log(data)) // Manejo de datos recibidos
      .catch(error => console.error('Error al obtener datos:', error)); // Manejo de error
    
  • Async/await: Azúcar sintáctico sobre promesas, que permite escribir código asíncrono en un estilo más sincrónico, haciéndolo más legible y fácil de depurar.
    // Ejemplo de uso de async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Espera a la promesa
        if (!response.ok) {
          throw new Error(`Error HTTP! estado: ${response.status}`);
        }
        const data = await response.json(); // Espera a la promesa
        console.log(data);
      } catch (error) {
        console.error('Error al obtener datos:', error); // Manejo de error
      }
    }
    fetchData();
    
  • Generadores (Generators): Pueden usarse para trabajar con asincronía en combinación con la biblioteca co o manualmente, aunque async/await se ha vuelto un enfoque más común.

Comparación de enfoques principales:

Método Ventajas Desventajas
Callbacks Sencillo en etapas iniciales "Callback hell", complejidad en manejo de errores
Promesas Mejor legibilidad, manejo de errores Pueden ser engorrosas en cadenas de operaciones
Async/await Alta legibilidad, parecido al código sincrónico Requiere soporte de entorno para async/await