Типы таймеров в JavaScript?
В JavaScript существует несколько основных типов таймеров, которые позволяют выполнять код через определенные интервалы времени или с задержкой. Вот основные:
1. setTimeout(callback, delay)
Запускает функцию или код один раз через заданную задержку (в миллисекундах).
- Пример:
setTimeout(() => { console.log("Прошло 2 секунды"); }, 2000);
2. setInterval(callback, delay)
Запускает функцию или код через регулярные интервалы времени, повторяя её каждые delay
миллисекунд.
-
Пример:
const intervalId = setInterval(() => { console.log("Каждые 2 секунды"); }, 2000);
-
Чтобы остановить таймер, используется
clearInterval(intervalId)
:clearInterval(intervalId);
3. setImmediate(callback)
(в среде Node.js)
Запускает функцию сразу после завершения текущей операции. В браузере эта функция не поддерживается.
- Пример (в Node.js):
setImmediate(() => { console.log("Этот код выполнится сразу после текущей операции"); });
4. requestAnimationFrame(callback)
(для анимаций)
Запускает функцию перед следующим перерисовыванием страницы, что полезно для создания плавных анимаций.
-
Пример:
function animate() { console.log("Анимация кадра"); requestAnimationFrame(animate); } requestAnimationFrame(animate);
-
Чтобы остановить анимацию, используется
cancelAnimationFrame(id)
:const animationId = requestAnimationFrame(animate); cancelAnimationFrame(animationId);
5. clearTimeout(timeoutId)
и clearInterval(intervalId)
Останавливают таймеры, запущенные с помощью setTimeout
и setInterval
, соответственно.
-
Пример:
const timeoutId = setTimeout(() => { console.log("Эта функция не выполнится, так как таймер будет очищен"); }, 5000); clearTimeout(timeoutId);
Эти таймеры используются для управления временем выполнения кода в JavaScript, будь то однократная задержка, регулярные интервалы или анимации.