JavaScript · время
Функция setTimeout()
setTimeout() планирует однократный запуск функции после минимальной задержки. Код не останавливается: следующие строки выполняются сразу.
Создание таймера
Первым аргументом передаётся функция, вторым — задержка в миллисекундах. Фактический запуск может произойти позже, если основной поток занят.
const timerId = setTimeout(() => {
console.log('Прошла секунда');
}, 1000);
Отмена
setTimeout возвращает идентификатор. Передай его в clearTimeout, если действие больше не нужно: например, пользователь закрыл уведомление.
const timerId = setTimeout(hideNotice, 5000);
closeButton.addEventListener('click', () => {
clearTimeout(timerId);
hideNotice();
});
Нулевая задержка
Задержка 0 не запускает функцию немедленно. Callback попадёт в очередь и выполнится только после текущего синхронного кода.
console.log('A');
setTimeout(() => console.log('B'), 0);
console.log('C'); // A, C, B
Частые ошибки
- Вызвать функцию сразу.
- Считать задержку точным временем.
- Не отменять ненужный таймер.
- Передавать строку кода вместо функции.
Практика
Покажи уведомление и автоматически скрой его через три секунды. Добавь кнопку закрытия, которая отменяет запланированный таймер.
Связанные темы
События · Функции · Асинхронный код