Sobes.tech
Middle

// Was wird in der Konsole ausgegeben? 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 KI

Antwort von AI

In der Konsole wird Folgendes angezeigt:

  1. Der Aufruf Promise.all([p1, p2, p3]) endet mit einem Fehler, da p2 nach 100 ms mit der Nachricht "Error" abgelehnt wird. Daher wird im .catch(console.error)-Block angezeigt:
Error
  1. Der Aufruf Promise.allSettled([p1, p2, p3]) endet immer erfolgreich und gibt ein Array mit den Ergebnissen aller Promises zurück, unabhängig von ihrem Status. In der Konsole wird ein Array von Objekten angezeigt:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Daher erscheint zuerst der Fehler von Promise.all in der Konsole, gefolgt vom Ergebnisarray von Promise.allSettled.