Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 65 из 114 · 8 мин
Цикл событий, очередь задач и микрозадач, порядок выполнения промисов и таймеров, сборка мусора.
Угадайте порядок: таймер 0 мс, промис и обычный console.log!
Легко: сначала весь текущий код, потом все микрозадачи, потом следующая задача. Сейчас покажу.
setTimeout(() => console.log("3: таймер"), 0);
Promise.resolve().then(() => console.log("2: промис"));
console.log("1: код");then, await и queueMicrotask идут в очередь микрозадач — она опустошается сразу после текущей задачи, раньше таймеров.queueMicrotask(() => console.log("микрозадача"));
setTimeout(() => console.log("задача"));
console.log("синхронно");Тяжёлый синхронный код блокирует всё: и клики, и отрисовку. Делить работу — через задачи.
Заполни массив order так, как реально выполнится код ниже: для этого просто добавь order.push(...) в каждый колбэк вместо комментариев и запусти.
Выберите один ответ.
Что выполнится раньше: then уже выполненного промиса или setTimeout(fn, 0)?
Выберите один ответ.
Когда объект удаляется сборщиком мусора?
Проверяем состояние обучения…