Какие строки появятся в консоли при выполнении скрипта №43

Последовательно появятся apple, orange, line, melon, pineapple, pear. Конструктор Promise вызывает executor сразу, поэтому orange относится к синхронной части.

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

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

Последовательно появятся apple, orange, line, melon, pineapple, pear. Конструктор Promise вызывает executor сразу, поэтому orange относится к синхронной части.

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

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

Условие

Укажите, какие сообщения будут выведены в консоль после выполнения следующего кода:

 console.log('apple');

setTimeout(() => console.log('pear'), 0);

Promise.resolve('melon').then(res => console.log(res));

new Promise((resolve, reject) => {
    console.log('orange');
    resolve('pineapple');
}).then(res => console.log(res));

console.log('line');

Ответ

Последовательно появятся apple, orange, line, melon, pineapple, pear. Конструктор Promise вызывает executor сразу, поэтому orange относится к синхронной части.

После apple регистрируется таймер с pear, но он не выполняется немедленно. then для melon становится микрозадачей. Следующий executor печатает orange и разрешает Promise значением pineapple, после чего его then попадает в ту же очередь.

Синхронный line завершает текущий фрагмент. Затем выполняются melon и pineapple в порядке регистрации обработчиков, и лишь после них — задача таймера с pear.

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

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

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

Подробнее