В JavaScript, если у вас есть неизвестный setInterval
и вы хотите его отменить, вы можете использовать несколько методов. Вот несколько вариантов:
-
Использование переменной для хранения идентификатора интервала:
- При вызове
setInterval
присвойте возвращаемый идентификатор переменной. - Позже вы можете использовать
clearInterval
с этой переменной, чтобы отменить интервал.
const intervalId = setInterval(() => { // Interval logic }, 1000); // To cancel the interval: clearInterval(intervalId);
- При вызове
-
Использование анонимной функции для отмены интервала:
- Оберните вызов
setInterval
внутри анонимной функции, которую можно будет вызвать позже для отмены интервала.
const cancelInterval = (() => { const intervalId = setInterval(() => { // Interval logic }, 1000); return () => clearInterval(intervalId); })(); // To cancel the interval: cancelInterval();
- Оберните вызов
-
Использование
setTimeout
вместоsetInterval
:- Вместо использования
setInterval
вы можете использоватьsetTimeout
рекурсивно, чтобы создать аналогичное поведение интервала. Таким образом, вы можете легко отменить интервал, не планируя следующий тайм-аут.
const intervalDelay = 1000; let timeoutId; const intervalLogic = () => { // Interval logic // Schedule the next timeout timeoutId = setTimeout(intervalLogic, intervalDelay); }; // To start the interval: timeoutId = setTimeout(intervalLogic, intervalDelay); // To cancel the interval: clearTimeout(timeoutId);
- Вместо использования