В каком порядке выполняются then, catch и finally у Promise
Почему then и finally выполняются после синхронного кода?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
5
Сложность:
8
then вызывается при успешном выполнении Promise, catch — при ошибке, а finally — всегда, независимо от результата. finally выполняется после then или catch, но не меняет значение, если сам не выбрасывает ошибку. Все эти колбэки выполняются как микротаски. Порядок строго следует цепочке.
Рейтинг:
5
Сложность:
8
then и finally выполняются после синхронного кода, потому что они ставятся в очередь микрозадач. JavaScript сначала выполняет весь синхронный код в текущем стеке вызовов. Только после этого event loop начинает обрабатывать микрозадачи. Поэтому обработчики промисов всегда выполняются “чуть позже”.