Sobes.tech
Middle

// Cosa verrà visualizzato nella console? 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

Risposta dell'AI

La console mostrerà quanto segue:

  1. La chiamata a Promise.all([p1, p2, p3]) si concluderà con un errore, poiché p2 viene rifiutato dopo 100 ms con il messaggio "Error". Pertanto, nel blocco .catch(console.error) verrà visualizzato:
Error
  1. La chiamata a Promise.allSettled([p1, p2, p3]) si conclude sempre con successo, restituendo un array con i risultati di tutte le promesse, indipendentemente dal loro stato. In console verrà visualizzato un array di oggetti:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

In questo modo, prima apparirà in console l'errore di Promise.all, poi l'array dei risultati di Promise.allSettled.