Sobes.tech
Middle

// Какво ще се изведе в конзолата ? 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

Отговор от AI

В конзолата ще се покаже следното:

  1. Повикването Promise.all([p1, p2, p3]) ще завърши с грешка, тъй като p2 се отхвърля след 100 ms с съобщението "Error". Затова в блока .catch(console.error) ще бъде показано:
Error
  1. Повикването Promise.allSettled([p1, p2, p3]) винаги завършва успешно и връща масив с резултатите на всички обещания, независимо от техния статус. В конзолата ще бъде показан масив от обекти:
[
  { status: "fulfilled", value: 1 },
  { status: "rejected", reason: "Error" },
  { status: "fulfilled", value: 3 }
]

По този начин първо в конзолата ще се появи грешката от Promise.all, а след това масивът с резултатите от Promise.allSettled.