Answer
t.me/js_testОтвет:
{ status: "fulfilled", value: 42 },
{ status: "rejected", reason: "err" },
{ status: "fulfilled", value: "resolved" },
err
Объяснение:
Данный пример показывает разницу между Promise.allSettled и Promise.all. Первый метод возвращает промис, который исполняется когда все полученные промисы завершены(исполнены или отклонены), содержащий массив результатов исполнения полученных промисов, а второй метод попадает в onrejected или catch если любой из промисов выполнился с ошибкой.
Код:
const promise1 = Promise.resolve(42);
const promise2 = new Promise((_, reject) => {
setTimeout(reject, 100, 'err');
});
const promise3 = Promise.resolve('resolved');
const promises = [promise1, promise2, promise3];
Promise.allSettled(promises).then((results) => {
results.forEach((item) => console.log(item));
});
Promise.all(promises)
.then((results) => {
results.forEach((item) => console.log(item));
})
.catch((reason) => console.error(reason));