Sobes.tech
Middle

// Kas įvyks konsolėje? const p1 = Promise.resolve(1); const p2 = new Promise((_, reject) => setTimeout(() => reject("Error"), 100)); const p3 = Promise.resolve(3); Promise.all([p1, p2, p3]) .then(console.log) .catch(console.error); Promise.allSettled([p1, p2, p3]).then(console.log);

sobes.tech AI

Atsakymas iš AI

Konsolėje bus parodyta šis turinys:

  1. Iškvietimas Promise.all([p1, p2, p3]) baigsis klaida, nes p2 bus atmestas po 100 ms su pranešimu "Error". Todėl .catch(console.error) bloke bus parodyta:
Error
  1. Iškvietimas Promise.allSettled([p1, p2, p3]) visada sėkmingai užbaigs ir grąžins masyvą su visų pažadų rezultatais, nepriklausomai nuo jų būsenos. Konsolėje bus parodytas objektų masyvas:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Taigi, pirmiausia konsolėje pasirodys Promise.all klaida, o po to Promise.allSettled rezultatų masyvas.