Objeto que representa una operación asíncrona en JavaScript, con estados pending, fulfilled o rejected.
Una Promise (promesa) es un objeto que representa el resultado eventual de una operación asíncrona. Tiene tres estados: - Pending: Estado inicial, operación en curso - Fulfilled: Operación completada exitosamente - Rejected: Operación fallida Las promesas resuelven el "callback hell" permitiendo encadenar operaciones con .then() y manejar errores centralizadamente con .catch().
// Crear una Promise const fetchUser = (id) => { return new Promise((resolve, reject) => { setTimeout(() => { if (id > 0) { resolve({ id, name: 'Usuario' }); } else { reject(new Error('ID inválido')); } }, 1000); }); }; // Usar Promise con .then/.catch fetchUser(1) .then(user => { console.log('Usuario:', user); return fetchPosts(user.id); }) .then(posts => { console.log('Posts:', posts); }) .catch(error => { console.error('Error:', error.message); }) .finally(() => { console.log('Operación completada'); }); // Promise.all - Ejecutar en paralelo const results = await Promise.all([ fetchUser(1), fetchUser(2), fetchUser(3) ]); // Promise.race - Primer resultado (o error) const fastest = await Promise.race([ fetchFromServer1(), fetchFromServer2() ]); // Promise.allSettled - Todos los resultados const outcomes = await Promise.allSettled([ fetchUser(1), fetchUser(-1) // Este fallará ]); // [{ status: 'fulfilled', value: {...} }, { status: 'rejected', reason: Error }]