Sobes.tech
Middle

// Ko tiks precīzi konsolē? 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

Atbilde no AI

Konsolē tiks parādīts sekojošais:

  1. Izsaukums Promise.all([p1, p2, p3]) beidzās ar kļūdu, jo p2 tiek noraidīts pēc 100 ms ar ziņojumu "Error". Tāpēc .catch(console.error) blokā tiks parādīts:
Error
  1. Izsaukums Promise.allSettled([p1, p2, p3]) vienmēr beidzas ar panākumiem un atgriež masīvu ar visu solījumu rezultātiem, neatkarīgi no to stāvokļa. Konsolē tiks parādīts objektu masīvs:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Tādējādi vispirms konsolē parādīsies Promise.all kļūda, pēc tam Promise.allSettled rezultātu masīvs.