Встречается на собеседованиях • сегодня
Как избежать блокировки Event Loop
Event Loop блокируется при выполнении долгих синхронных операций. Чтобы избежать этого:
- Разбивайте тяжелые задачи на части с помощью
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();
}- Используйте Web Workers для вычислительно сложных задач:
js
const worker = new Worker('worker.js');
worker.postMessage(data);
worker.onmessage = (e) => { /* обработка результата */ };-
Оптимизируйте синхронный код - избегайте вложенных циклов, сложных вычислений в основном потоке.
-
Используйте асинхронные API (fs.readFile вместо fs.readFileSync и т.д.)
-
Делайте паузы в длительных операциях с помощью
await new Promise(resolve => setTimeout(resolve, 0))

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы