Вопрос проверяет понимание event loop и различия между синхронным кодом и микрозадачами.
Короткий ответ
then и finally выполняются после синхронного кода, потому что они ставятся в очередь микрозадач. JavaScript сначала выполняет весь синхронный код в текущем стеке вызовов. Только после этого event loop начинает обрабатывать микрозадачи. Поэтому обработчики промисов всегда выполняются “чуть позже”.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.