// Что выведется в консоль ?

В консоль выведется следующее:

Короткий ответ

Что ответить на собеседовании

В консоль выведется следующее:

Подробный разбор

Ответ с пояснениями

Условие

// Что выведется в консоль ? 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);

Ответ

В консоль выведется следующее:

  1. Вызов Promise.all([p1, p2, p3]) завершится с ошибкой, так как p2 отклоняется через 100 мс с сообщением "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.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку