Выбор ответа Junior Промисы и async/await обновлено
Что возвращает then
Вопрос
Что возвращает вызов promise.then(handler)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Новый промис: он выполнится результатом handler или отклонится при ошибке. then всегда создаёт новый промис.
Варианты ответа
- Новый промис: он выполнится результатом
handlerили отклонится при ошибкеправильный ответ - Тот же самый
promise, чтобы можно было строить цепочку из несколькихthen - Результат
handlerсинхронно, если промис к этому моменту уже выполнен undefined: результат обработчика можно получить только внутриhandler
Разбор
then всегда создаёт новый промис. Если обработчик вернул значение, новый промис выполнится им; вернул промис, новый будет следовать за ним; бросил исключение, новый отклонится. Именно поэтому цепочки работают, и каждый шаг может преобразовать результат. Это не тот же промис: p.then(f) === p даёт false. Обработчик вызывается асинхронно, так что синхронно получить его результат нельзя.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.