Промис: состояния и гарантии
Вопрос
Что такое промис? Какие у него состояния и гарантии?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
три состояния: pending, fulfilled, rejected
переход происходит один раз и необратим
then всегда возвращает новый промис - отсюда цепочки
колбэк then вызывается асинхронно, в микрозадаче, даже для готового промиса
возврат промиса из then разворачивается автоматически
необработанный reject даёт unhandledrejection
Что могут спросить следом
- Что вернёт then, если колбэк бросит исключение
- Чем finally отличается от then с двумя аргументами
- Почему нельзя отменить промис
Разбор
Промис - объект с тремя состояниями: ожидание, выполнен, отклонён. Переход из ожидания
происходит ровно один раз и необратим - повторный resolve игнорируется.
then всегда возвращает новый промис, поэтому цепочки работают; если колбэк вернул
промис, он автоматически разворачивается. Колбэк вызывается всегда асинхронно, через очередь
микрозадач, даже если промис уже готов - это гарантия предсказуемого порядка.
Отклонение без обработчика всплывает как unhandledrejection.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.