Как then с null передаёт значение по цепочке

Будет выведено 10. Если обработчик then не является функцией, он не преобразует успешный результат и значение передаётся дальше.

Короткий ответ

Что ответить на собеседовании

Будет выведено 10. Если обработчик then не является функцией, он не преобразует успешный результат и значение передаётся дальше.

Подробный разбор

Ответ с пояснениями

Условие

Что выведет код?

Promise.resolve(5)
  .then(null)
  .then(value => value * 2)
  .then(console.log);

Ответ

Будет выведено 10. Если обработчик then не является функцией, он не преобразует успешный результат и значение передаётся дальше.

Null здесь не означает возврат null: это отсутствие подходящего обработчика. Для реального преобразования в null нужно написать .then(() => null). Аналогично отсутствующий обработчик ошибки не поглощает отклонение; оно распространяется до следующего подходящего catch или второго аргумента then.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее