Capítulo 4: Combinación de promesas
4.1. Promise.all(): Todas deben cumplirse
Promise.all(): Todas deben cumplirse// Sintaxis: Promise.all([promesa1, promesa2, ...])
const p1 = Promise.resolve(1);
const p2 = Promise.resolve(2);
const p3 = Promise.resolve(3);
Promise.all([p1, p2, p3]).then((resultados) => {
console.log(resultados); // [1, 2, 3]
});Caso de uso: Cargar múltiples recursos
function obtenerUsuario(id) {
return new Promise((resolve) => {
setTimeout(() => {
resolve({ id, nombre: `Usuario${id}` });
}, 1000);
});
}
function obtenerPosts(usuarioId) {
return new Promise((resolve) => {
setTimeout(() => {
resolve([
{ id: 1, titulo: "Post 1" },
{ id: 2, titulo: "Post 2" }
]);
}, 1500);
});
}
// Cargar usuario y posts en paralelo
Promise.all([
obtenerUsuario(1),
obtenerPosts(1)
]).then(([usuario, posts]) => {
console.log("Usuario:", usuario);
console.log("Posts:", posts);
// Se completa en ~1500ms (no 2500ms)
});4.2. Promise.race(): La primera que se resuelva
Promise.race(): La primera que se resuelvaCaso de uso: Timeout
4.3. Promise.allSettled(): Esperando a todas (ES2020)
Promise.allSettled(): Esperando a todas (ES2020)Procesar resultados:
Caso de uso: Descargar múltiples archivos
4.4. Promise.any(): La primera que se cumpla (ES2021)
Promise.any(): La primera que se cumpla (ES2021)Si todas se rechazan:
Caso de uso: Probar múltiples servidores
4.5. Comparación y casos prácticos
Método
Espera
Retorna
Si falla
Patrón: Esperar a todas, continuar con resultados
Resumen del Capítulo
💡 Conceptos Clave:
🤔 Preguntas de Reflexión:
Última actualización
¿Te fue útil?