javascript interview question #30

Что произойдет, если ты попробуешь сделать reject JavaScript промиса внутри resolve? Будет ли выполнен блок finally?

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Чтобы проанализировать эту проблему, я начну с вещей, которые можно сказать наверняка:

  • логгирование внутри функции .then(console.log) не будет выполнено, потому что Promise.resolve() завершится с ошибкой
  • блок catch не ловит ошибки в асинхронном коде

Итак, у нас остался блок finally. В нем есть один вызов console.log и это первая строка, которая будет выведена на экран.

После этого, возникнет необработанная ошибка в асинхронном коде, потому что мы не добавили обработчик ошибок к промису в строке 2.


ОТВЕТ: На экран будет сначала выведена строка finally, а после нее - сообщение об асинхронной ошибке UnhandledPromiseRejectionWarning: -1.