Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Какие задачи относятся к microtasks, а какие к macrotasks?
В каком порядке выполняются setTimeout и Promise.then?
Почему Promise.then попадает в очередь microtasks?
Будут ли накапливаться задачи в очереди во время блокировки UI?
Рейтинг:
5
Сложность:
7
Microtasks — это задачи с более высоким приоритетом, которые выполняются сразу после завершения текущего синхронного кода. К ним относятся Promise.then, catch, finally, queueMicrotask, MutationObserver. Macrotasks — это задачи общего планирования, такие как setTimeout, setInterval, setImmediate, обработчики событий и I/O. Event loop всегда сначала выполняет все microtasks, и только потом берёт следующую macrotask.
Рейтинг:
5
Сложность:
6
Promise.then всегда выполняется раньше, чем setTimeout, даже если таймер имеет задержку 0. Это происходит потому, что then попадает в очередь microtasks, а setTimeout — в очередь macrotasks. После завершения синхронного кода event loop сначала очищает очередь microtasks, и только потом берёт следующую macrotask.
Рейтинг:
5
Сложность:
9
Promise.then попадает в microtask queue, чтобы выполняться сразу после текущего синхронного кода. Это даёт более высокий приоритет по сравнению с macrotasks. Такой механизм обеспечивает предсказуемость и согласованность асинхронного поведения. Он позволяет Promise работать быстрее, чем таймеры. Это важная часть спецификации JavaScript.
Рейтинг:
4
Сложность:
5