В 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); - Вместо использования