Sobes.tech
Middle

// O que será exibido no 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 IA

Resposta da IA

No console será exibido o seguinte:

  1. A chamada Promise.all([p1, p2, p3]) terminará com um erro, pois p2 é rejeitado após 100 ms com a mensagem "Error". Portanto, no bloco .catch(console.error) será exibido:
Error
  1. A chamada Promise.allSettled([p1, p2, p3]) sempre termina com sucesso, retornando um array com os resultados de todas as promessas, independentemente do seu estado. No console será exibido um array de objetos:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

Assim, primeiro aparecerá no console o erro do Promise.all, e depois o array de resultados do Promise.allSettled.