circle-info
Desarrollo en curso, en breve se publicarán el resto de temas.

Capítulo 7: Fetch + Async/Await (Patrón Recomendado)

La combinación de Fetch API con async/await es el patrón recomendado en JavaScript moderno. Es claro, legible y fácil de mantener. Este capítulo consolida todo lo anterior.

7.1. Reescribir promesas con async/await

Ya conoces ambos patrones. Ahora veamos cómo convertirlos entre ellos.

Promise chaining (antiguo patrón):

function obtenerPost(id) {
    return fetch(`/api/posts/${id}`)
        .then(respuesta => {
            if (!respuesta.ok) throw new Error(`HTTP ${respuesta.status}`);
            return respuesta.json();
        })
        .then(post => {
            console.log("Post obtenido:", post.title);
            return post;
        })
        .catch(error => {
            console.error("Error:", error);
        });
}

Async/Await (patrón moderno):

La versión con async/await es más clara porque se lee como código síncrono.


7.2. Estructura típica: fetchokjson()

Este es el patrón estándar que verás en todas partes:


7.3. Manejo de errores con try/catch

try/catch es el mecanismo estándar para manejar errores asíncronos.


7.4. Casos prácticos: APIs públicas

Aquí hay ejemplos reales usando APIs públicas gratuitas:

JSONPlaceholder (API de prueba):

OpenWeather (Datos meteorológicos):


7.5. Depuración: Inspeccionar respuestas

Cuando algo no funciona, es útil inspeccionar qué retorna la API:


7.6. Patrón: Función reutilizable para fetch

Es común crear una función genérica para manejar el patrón estándar:


7.7. Peticiones simultáneas con Promise.all

Para cargar múltiples recursos eficientemente:


Resumen del Capítulo

async/await + Fetch es el patrón moderno recomendado para trabajar con APIs en JavaScript. Es legible, mantenible y funciona perfectamente con try/catch para manejar errores. Combina Fetch con Promise.all() para operaciones paralelas eficientes.

💡 Conceptos Clave:

  • async/await sobre Fetch: El patrón recomendado

  • Estructura: fetch → ok → json(): El flujo estándar

  • try/catch: Manejo de errores

  • finally: Limpiar recursos

  • Promise.all: Cargar múltiples recursos en paralelo

  • Debugging: Inspeccionar respuestas con console.log

  • Funciones reutilizables: Crear helpers genéricos

  • APIs públicas: JSONPlaceholder para pruebas

🤔 Preguntas de Reflexión:

  1. ¿Por qué async/await es más legible que Promise chaining?

  2. ¿Cuál es el patrón estándar para fetch?

  3. ¿Cómo usarías Promise.all para cargar múltiples recursos?

  4. ¿Cuándo usarías finally en una operación fetch?

  5. ¿Cómo crearías una función reutilizable para fetch?

  6. ¿Qué diferencia hay entre error de red y error HTTP?

  7. Crea una función que cargue datos de dos APIs y los combine.


Última actualización

¿Te fue útil?