Проверяет знание статического метода Promise.allSettled для параллельного выполнения промисов с ожиданием завершения всех.
Когда вы отправляете несколько асинхронных запросов и хотите дождаться их полного завершения, не прерываясь на первой ошибке, на помощь приходит статический метод Promise.allSettled. В отличие от Promise.all, который немедленно отклоняется, если хотя бы один промис завершился с ошибкой, allSettled ждет завершения всех промисов и возвращает массив с результатами каждого.
Метод принимает итерируемый объект (обычно массив) промисов. Возвращаемый промис всегда разрешается (не отклоняется), когда все исходные промисы завершены. Результат — массив объектов, каждый из которых имеет поле status со значением 'fulfilled' или 'rejected'. Для успешных промисов добавляется поле value, для отклоненных — reason.
const promises = [
fetch('/api/data1'),
fetch('/api/data2'),
Promise.reject('Ошибка')
];
Promise.allSettled(promises)
.then(results => {
results.forEach(result => {
if (result.status === 'fulfilled') {
console.log('Успех:', result.value);
} else {
console.log('Ошибка:', result.reason);
}
});
});Этот метод полезен в сценариях, где нужно выполнить несколько независимых операций (например, загрузка данных с разных эндпоинтов, отправка аналитических событий) и обработать результаты всех, даже если некоторые завершились неудачей. Он часто используется в панелях мониторинга, при агрегации данных из нескольких источников или в тестах, где нужно проверить несколько асинхронных операций.
Используйте Promise.allSettled, когда вам важно дождаться завершения всех асинхронных операций и обработать каждый результат отдельно, не прерывая общий процесс из-за одной ошибки. Это делает код более устойчивым и предсказуемым при работе с параллельными запросами.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию