Метод 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.