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
coo manualmente, aunqueasync/awaitse 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 |