Sobes.tech
Middle

// Mit ír ki a konzol ? 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 MI

Válasz az MI-től

A konzolon a következő fog megjelenni:

  1. A Promise.all([p1, p2, p3]) hívás hibával fog végződni, mivel a p2 100 ms után elutasításra kerül az "Error" üzenettel. Ezért a .catch(console.error) blokkban a következő lesz kiírva:
Error
  1. A Promise.allSettled([p1, p2, p3]) hívás mindig sikeresen zárul, és visszaad egy tömböt az összes ígéret eredményével, függetlenül azok állapotától. A konzolon egy objektumokból álló tömb fog megjelenni:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Így először a Promise.all hibája jelenik meg a konzolon, majd a Promise.allSettled eredmény tömbje.