Как сделать отписку от setInterval в worker-timers?
Использую библиотеку "worker-timers" в angular приложении, вот ссылка на библиотеку:
https://www.npmjs.com/package/worker-timers
Мне нужно использовать интервал, но с возможность остановить его, и запустить снова в момент времени. Почему-то не происходит отписка от setInterval .. Вопрос, как сделать отписку ?
// import { clearInterval, setInterval } from 'worker-timers'; // , setTimeout clearTimeout, import * as workerTimers from 'worker-timers'; timerCall:any tesWorkerFunc() try { workerTimers.clearInterval(this.timerCall); } catch (err){ } this.timerCall = workerTimers.setInterval(() => { this.вызовФункции(); }, 1000) } |
// import { clearInterval, setInterval } from 'worker-timers'; // , setTimeout clearTimeout, import * as workerTimers from 'worker-timers'; timerCall:any tesWorkerFunc() try { workerTimers.clearInterval(this.timerCall); } catch (err){ } this.timerCall = workerTimers.setInterval(() => { this.вызовФункции(); }, 1000) }
Вижу ошибки при попытке отписаться от таймера, вроде:
There is no interval scheduled with the given id "3".
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы отписаться от setInterval в Web Worker, необходимо сохранить идентификатор setInterval и использовать его для вызова clearInterval. Вот пример кода на JavaScript:
// Создаем переменную для хранения идентификатора setInterval let intervalId; // Устанавливаем setInterval intervalId = setInterval(function() { // Ваш код здесь }, 1000); // Для отписки от setInterval используем clearInterval clearInterval(intervalId);
В данном примере мы сохраняем идентификатор setInterval в переменной intervalId при его установке. Позже, чтобы отписаться от этого интервала, мы вызываем clearInterval и передаем в него этот идентификатор.
Таким образом, вы сможете управлять выполнением кода внутри setInterval и отписываться от него в нужный момент. Не забывайте, что setInterval работает в контексте Web Worker, поэтому этот код должен быть выполнен внутри соответствующего окружения.