1. Promise.all con async/await:Espera a que todas las promesas se resuelvan. Si alguna promesa es rechazada, se rechaza inmediatamente con el motivo del primer error. async function ejemploPromiseAll() { const p1 = Promise.resolve(3); const p2 = 1337; // valor normal, se acepta directamente const p3 = new Promise(resolve => setTimeout(resolve, 100, "foo")); try { const resultados = await Promise.all([p1, p2, p3]); console.log(resultados); // [3, 1337, "foo"] } catch (error) { console.error("Error:", error); } } ejemploPromiseAll(); 2. Promise.any con async/await: Resuelve cuando la primera promesa se resuelve exitosamente. Rechaza solo si todas las promesas son rechazadas. async function ejemploPromiseAny() { const p1 = Promise.reject("Error 1"); const p2 = new Promise(resolve => setTimeout(resolve, 100, "Éxito 2")); const p3 = new Promise(resolve => setTimeout(resolve, 200, "Éxito 3")); try { const resultado = await Promise.any([p1, p2, p3]); console.log(resultado); // "Éxito 2" } catch (error) { console.error("Todas las promesas fallaron:", error); } } ejemploPromiseAny(); 3. Promise.race con async/await: Resuelve o rechaza tan pronto como la primera promesa se resuelva o rechace. async function ejemploPromiseRace() { const p1 = new Promise(resolve => setTimeout(resolve, 500, "Resultado p1")); const p2 = new Promise((_, reject) => setTimeout(reject, 100, "Error p2")); try { const resultado = await Promise.race([p1, p2]); console.log(resultado); } catch (error) { console.error("Error del primero en terminar:", error); // "Error p2" } } ejemploPromiseRace(); 4. Promise.allSettled con async/await: Espera a que todas las promesas terminen (resueltas o rechazadas) y devuelve un array con el estado y valor o razón de cada promesa. async function ejemploPromiseAllSettled() { const p1 = Promise.resolve("Éxito p1"); const p2 = Promise.reject("Error p2"); const p3 = Promise.resolve("Éxito p3"); const resultados = await Promise.allSettled([p1, p2, p3]); resultados.forEach((result, index) => { if (result.status === "fulfilled") { console.log(`Promesa ${index + 1} cumplida con valor: ${result.value}`); } else { console.log(`Promesa ${index + 1} rechazada con razón: ${result.reason}`); } }); } ejemploPromiseAllSettled();
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter