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

Как избежать блокировки Event Loop

Event Loop блокируется при выполнении долгих синхронных операций. Чтобы избежать этого:

  1. Разбивайте тяжелые задачи на части с помощью setTimeout или setImmediate:
js
function processChunk(data, chunkSize, callback) {
  let i = 0;
  function nextChunk() {
    const end = Math.min(i + chunkSize, data.length);
    // Обработка части данных
    for (; i < end; i++) { /* ... */ }
    if (i < data.length) setTimeout(nextChunk, 0);
    else callback();
  }
  nextChunk();
}
  1. Используйте Web Workers для вычислительно сложных задач:
js
const worker = new Worker('worker.js');
worker.postMessage(data);
worker.onmessage = (e) => { /* обработка результата */ };
  1. Оптимизируйте синхронный код - избегайте вложенных циклов, сложных вычислений в основном потоке.

  2. Используйте асинхронные API (fs.readFile вместо fs.readFileSync и т.д.)

  3. Делайте паузы в длительных операциях с помощью await new Promise(resolve => setTimeout(resolve, 0))

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

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

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

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