Sintaxis moderna de JavaScript para escribir código asíncrono de forma más legible, sin callbacks anidados.
Async/await es sintaxis de JavaScript (ES2017) que permite escribir código asíncrono de forma que parece síncrono. Es azúcar sintáctico sobre Promises que mejora significativamente la legibilidad. - async: Declara una función asíncrona (siempre devuelve Promise) - await: Pausa la ejecución hasta que la Promise se resuelva Ventajas: - Código más legible y mantenible - Debugging más fácil - Manejo de errores con try/catch familiar
// Función async básica async function getUser(id) { const response = await fetch(`/api/users/${id}`); if (!response.ok) { throw new Error('Usuario no encontrado'); } return response.json(); } // Arrow function async const fetchData = async () => { const data = await apiCall(); return data; }; // Manejo de errores con try/catch async function loadUserData(userId) { try { const user = await getUser(userId); const posts = await getPosts(user.id); const comments = await getComments(posts[0].id); return { user, posts, comments }; } catch (error) { console.error('Error cargando datos:', error); throw error; } } // Ejecución paralela con await async function loadAllData() { // Secuencial (lento) const user = await getUser(1); const posts = await getPosts(1); // Paralelo (rápido) const [user2, posts2] = await Promise.all([ getUser(2), getPosts(2) ]); } // Top-level await (ES modules) const config = await loadConfig(); export { config };