Встречается на собеседованиях • сегодня
При каком условии могут пересечься две tasks в setInterval
Две задачи в setInterval могут пересечься, если время выполнения задачи превышает интервал между вызовами. Например:
javascript
setInterval(() => {
// Допустим, эта задача выполняется 300мс
heavyTask();
}, 200); // Интервал 200мсВ этом случае:
- Первая задача запускается в 0мс
- Завершается в ~300мс
- Вторая задача должна была запуститься в 200мс, но движок JS (однопоточный) занят первой задачей
- Вторая задача запустится сразу после завершения первой (~300мс)
Результат - задачи накладываются, интервал не соблюдается. Для точного интервала между завершениями задач лучше использовать рекурсивный setTimeout:
javascript
function runTask() {
heavyTask();
setTimeout(runTask, 200);
}
runTask();
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы