Встречается на собеседованиях • сегодня

В чем разница между Promise.all и Promise.allSettled

Promise.all и Promise.allSettled оба работают с массивом промисов, но ведут себя по-разному:

  1. Promise.all:
    • Ждёт выполнения всех промисов.
    • Если хотя бы один промис отклонён (rejected), весь Promise.all отклоняется с ошибкой первого отклонённого промиса.
    • Подходит, когда все промисы критичны и нужен успех всех операций.
javascript
Promise.all([promise1, promise2])
  .then(results => console.log(results))
  .catch(error => console.error(error)); // Прервётся при первой ошибке
  1. Promise.allSettled:
    • Ждёт завершения всех промисов (независимо от успеха/ошибки).
    • Возвращает массив объектов с статусом (fulfilled/rejected) и значением/причиной.
    • Подходит, когда важно обработать все результаты, включая ошибки.
javascript
Promise.allSettled([promise1, promise2])
  .then(results => results.forEach(result => {
    if (result.status === 'fulfilled') console.log(result.value);
    else console.error(result.reason);
  }));

Итог: all — "всё или ничего", allSettled — "все результаты, даже ошибки".

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы