Консоль выведет сначала f, затем abd. Первый catch обрабатывает ошибку и возвращает обычную строку, переводя цепочку в успешное состояние.
Что будет выведено в консоль (пример 70)
Консоль выведет сначала f, затем abd. Первый catch обрабатывает ошибку и возвращает обычную строку, переводя цепочку в успешное состояние.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой результат появится в консоли после выполнения следующего кода JavaScript.
Promise.reject("a")
.catch((p) => p + "b")
.catch((p) => p + "c")
.then((p) => p + "d")
.then((p) => console.log(p));
console.log("f");
Ответ
Консоль выведет сначала f, затем abd. Первый catch обрабатывает ошибку и возвращает обычную строку, переводя цепочку в успешное состояние.
Из 'a' получается 'ab'. Следующий catch пропускается, потому что нового отклонения нет. Then добавляет 'd', а последний then печатает результат. F выводится синхронно до обработчиков Promise.