Метод JavaScript setTimeout
будет ждать некоторое время, а затем выполнит указанную вами задачу. Он принимает два параметра: функцию обратного вызова, которая выполнит задачу, и количество миллисекунд ожидания перед обратным вызовом.
Пример
const timeOut = setTimeout(function(){
alert('5 completed');
}, 5000);
Функция выполняется только один раз. Если вам нужно повторить выполнение, используйте метод setInterval().
Обратный вызов может не произойти точно в указанное время в зависимости от того, насколько занята программа. Обычно это происходит довольно близко к указанному времени, но не стройте часы на основе setTimeout
. Однако используйте setTimeout
в любой ситуации, когда небольшая неточность допустима, например:
- Всплывающее окно, которое вы хотите показать, когда посетитель находится на сайте в течение 30 секунд.
- Напоминание пользователю сохранить свою работу через 5 минут.
- Проверяем, вернул ли запрос к серверу результат и не предпринимает ли что-то по этому поводу.
- Всякий раз, когда вы хотите, чтобы что-то произошло через определенное время, но вам не требуется точность олимпийского секундомера.
Вот как вы используете setTimeout
: первый аргумент — это функция, которую вы хотите вызвать. Второй – это время в миллисекундах (тысячных долях секунды). В этом примере ниже появится всплывающее сообщение по истечении 5 секунд.
Отображение окна предупреждения через 5 секунд (5000 миллисекунд):
const timeOut = setTimeout(function(){
alert('5 completed');
}, 5000);
Параметры:
func|code
Функция или строка кода для выполнения. Обычно это функция. По историческим причинам можно передать строку кода, но это не рекомендуется.
delay
Задержка перед запуском в миллисекундах (1000 мс = 1 секунда), по умолчанию 0.
arg1
, arg2
…Аргументы для функции (не поддерживается в IE9-)
Значение, возвращаемое reference
, представляет собой число, указывающее, какой вызов setTimeout
был использован. Это можно использовать позже, чтобы отменить setTimeout
до того, как он сработает. Когда я тестировал его, число было 2781, но это могло быть что угодно, и вам это нужно, только если вы хотите отменить действие позже.
Используйте метод clearTimeout(), чтобы предотвратить запуск функции. Метод clearTimeout() очищает таймер, установленный с помощью метода setTimeout
.