Back to questions
Middle
6
// Что выведется в консоль ? 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);
Companies where asked
Мыс
Answer from AI
sobes.tech AI
В консоль выведется следующее:
- Вызов
Promise.all([p1, p2, p3])завершится с ошибкой, так какp2отклоняется через 100 мс с сообщением "Error". Поэтому в блоке.catch(console.error)будет выведено:
Error
- Вызов
Promise.allSettled([p1, p2, p3])всегда завершается успешно, возвращая массив с результатами всех промисов, независимо от их состояния. В консоль будет выведен массив объектов:
[
{ status: "fulfilled", value: 1 },
{ status: "rejected", reason: "Error" },
{ status: "fulfilled", value: 3 }
]
Таким образом, сначала в консоль попадёт ошибка из Promise.all, затем массив результатов из Promise.allSettled.