Выбор ответа Junior Асинхронные паттерны обновлено
Executor промиса выполняется сразу
Вопрос
Что выведет код?
const p = new Promise((resolve) => {
console.log('executor');
resolve('ok');
console.log('after resolve');
});
p.then((v) => console.log(v));
console.log('sync');
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: executor after resolve sync ok. Функция-executor вызывается синхронно прямо в new Promise. resolve не прерывает её, поэтому after resolve тоже выводится сразу. then всегда асинхронный: ok после синхронного sync. - resolve не работает как return. - Executor не…
Варианты ответа
executor after resolve sync okправильный ответexecutor sync ok after resolvesync executor after resolve okexecutor ok after resolve sync
Разбор
Функция-executor вызывается синхронно прямо в new Promise. resolve не прерывает её, поэтому after resolve тоже выводится сразу. then всегда асинхронный: ok после синхронного sync.
resolveне работает какreturn.- Executor не откладывается.
- Обработчик
thenне вызывается синхронно, даже если промис уже выполнен.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.