Sobes.tech
Middle

// Шта ће се приказати у конзоли? 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 АИ

Одговор од АИ

U konzoli će se prikazati sledeće:

  1. Poziv Promise.all([p1, p2, p3]) će se završiti greškom, jer p2 će biti odbijen nakon 100 ms sa porukom "Error". Zato će u bloku .catch(console.error) biti prikazano:
Error
  1. Poziv Promise.allSettled([p1, p2, p3]) uvek se završava uspešno, vraćajući niz sa rezultatima svih obećanja, bez obzira na njihov status. U konzoli će biti prikazan niz objekata:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Na ovaj način, prvo će se u konzoli pojaviti greška iz Promise.all, a zatim niz rezultata iz Promise.allSettled.