Встречается на собеседованиях • сегодня

Как микро-задачу превратить в макро-задачу

В JavaScript микро-задачи (microtasks) и макро-задачи (macrotasks) обрабатываются разными очередями. Микро-задачи выполняются сразу после текущего синхронного кода, а макро-задачи — в следующем цикле событий.

Чтобы превратить микро-задачу в макро-задачу, можно обернуть её в setTimeout:

js
// Микро-задача (Promise)
Promise.resolve().then(() => console.log('Microtask'));

// Превращаем в макро-задачу
setTimeout(() => {
  Promise.resolve().then(() => console.log('Macrotask (wrapped)'));
}, 0);

Порядок вывода:

  1. 'Microtask'
  2. 'Macrotask (wrapped)'

Также можно использовать другие API, создающие макро-задачи: setInterval, requestAnimationFrame, MessageChannel и т.д.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы