В исходнике SyntaxError: первый setTimeout закрыт фигурной скобкой вместо круглой. После исправления на ); порядок будет 2, 6, 1, 3, 4, 5, 7.
Печать в консоль: задача 17
В исходнике SyntaxError: первый setTimeout закрыт фигурной скобкой вместо круглой. После исправления на ); порядок будет 2, 6, 1, 3, 4, 5, 7.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите порядок вывода в консоль
Promise.resolve().then(() => console.log(1));
console.log(2);
setTimeout(() =>
new Promise((res) => {
console.log(3);
res(null);
}).then(() => console.log(4))
};
setTimeout(() => console.log(5));
console.log(6);
setTimeout(() => console.log(7));
Ответ
В исходнике SyntaxError: первый setTimeout закрыт фигурной скобкой вместо круглой. После исправления на ); порядок будет 2, 6, 1, 3, 4, 5, 7.
Синхронные строки выводят 2 и 6, затем выполняется микрозадача с 1. Первый таймер создаёт Promise, чей executor сразу печатает 3. Его then печатает 4 в микрозадаче после завершения этого таймера, до следующих timer-callbacks 5 и 7. Как написано в условии, весь script не проходит синтаксический разбор и не выводит даже начальные числа.