Async/Await es azúcar sintáctico sobre Promesas. Hace que el código asíncrono parezca síncrono, lo cual es más fácil de seguir para el cerebro humano.
El Patrón
Nota que envolvemos todo en try/catch. Esto es obligatorio en código profesional. Sin él, si la solicitud falla, tu aplicación podría bloquearse silenciosamente.
javascript
// Llamada API simulada
const buscarUsuario = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
// Simular tasa de fallo del 50%
Math.random() > 0.5
? resolve({ id: 1, nombre: "Alice" })
: reject(new Error("Error de Red"));
}, 1000);
});
};
async function cargarPerfil() {
console.log("Cargando...");
try {
// El código se pausa aquí hasta que la promesa se resuelve
const usuario = await buscarUsuario();
console.log("Usuario cargado:", usuario.nombre);
} catch (error) {
// Si la promesa se rechaza, saltamos aquí
console.error("Falló:", error.message);
} finally {
console.log("Spinner de carga oculto.");
}
}
cargarPerfil();Error Común: Cascadas Secuenciales
No uses await en cosas una por una si no dependen entre sí.
Malo: await getUsuario(); await getPosts(); (Espera dos veces).
Bueno: await Promise.all([getUsuario(), getPosts()]); (Se ejecutan juntos).