setTimeout
Выполняет функцию один раз через заданное время.
Доступно с: Web API
Синтаксис
setTimeout(callback, delay, ...args)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| callback | Function | Функция, которая выполнится один раз. |
| delay | number | Необязательный. Задержка в миллисекундах. По умолчанию 0. |
| ...args | any | Необязательные. Аргументы для функции. |
Возвращаемое значение
numberИдентификатор таймера — для отмены через clearTimeout.
Примеры
Отложенный вызов:
setTimeout(() => console.log('one second later'), 1000);
console.log('right now');Результат:
right now
one second laterДаже нулевая задержка выполняется после текущего кода:
setTimeout(() => console.log('timer'), 0);
console.log('first');
console.log('second');Результат:
first
second
timerПауза через промис:
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
console.log('start');
await sleep(300);
console.log('300 ms later');Результат:
start
300 ms laterПримечания
Задержка — минимальное время, а не точное: если программа занята, функция выполнится позже.
Частая ошибка — передать результат вызова вместо функции: setTimeout(greet(), 1000) вызовет greet сразу. Правильно: setTimeout(greet, 1000) или setTimeout(() => greet('Anna'), 1000).
См. также
- clearTimeout — Отменяет запланированный setTimeout.
- setInterval — Выполняет функцию снова и снова с заданным интервалом.
- Promise — Обещание результата, который будет готов позже: успех или ошибка.
Вопросы и ответы по теме
В учебнике
- Таймеры — Функции setTimeout и setInterval в JavaScript: отложенный и повторяющийся вызов, аргументы, отмена таймера.