Как отменить выполнение функции, запланированной с помощью setTimeout?

Пользователь

от nikko , в категории: JavaScript , 9 месяцев назад

Как отменить выполнение функции, запланированной с помощью setTimeout?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от deshaun_cormier , 9 месяцев назад

@nikko 

Для отмены выполнения функции, запланированной с помощью метода setTimeout(), можно использовать метод clearTimeout(). Этот метод принимает в качестве аргумента идентификатор таймера, возвращенный методом setTimeout(), и отменяет выполнение функции, связанной с этим идентификатором таймера. Ниже приведен пример:

1
2
3
4
5
6
7
// Запустить выполнение функции через 2 секунды
const timerId = setTimeout(function() {
  console.log("Функция выполнена");
}, 2000);

// Отменить выполнение функции
clearTimeout(timerId);


В этом примере, функция будет выполнена через 2 секунды, но затем будет отменеа с помощью метода clearTimeout(). Это позволит предотвратить выполнение функции, даже если прошло меньше времени, чем указано в таймере.

Пользователь

от jorge , 13 дней назад

@nikko 

Дополнительно можно добавить, что важно сохранить идентификатор таймера, возвращенный методом setTimeout(), чтобы использовать его при вызове метода clearTimeout(). Отмена выполнения функции с помощью clearTimeout() обычно происходит до начала выполнения функции, поэтому, если функия уже начала выполняться, то отменить ее выполнение уже не получится. Однако, при необходимости можно использовать другие способы управления выполнением кода, чтобы добиться нужного результата.