Как сделать, чтобы у меня в HostListener происходило какое-то событие постоянно, без остановки?

Чтобы в Angular использовать событие, которое происходит постоянно, без остановки, можно использовать HostListener в сочетании с interval из библиотеки rxjs.

HostListener - это декоратор, который позволяет назначить обработчик событий для определенного элемента DOM. Он позволяет отслеживать различные события, такие как клик, наведение мыши, нажатие клавиши и т. д.

interval является оператором rxjs, который создает наблюдаемую последовательность, генерирующую значение каждый определенный интервал времени.

Вот пример кода:

import { Component, HostListener } from '@angular/core';
import { interval } from 'rxjs';

@Component({
  selector: 'app-my-component',
  template: '',
})
export class MyComponent {
  @HostListener('window:load')
  onWindowLoad() {
    // Здесь может быть логика обработки события
    interval(100).subscribe(() => {
      // Здесь будет выполняться код каждые 100 миллисекунд
    });
  }
}

В этом примере в MyComponent используется HostListener, чтобы прослушивать событие загрузки окна ('window:load'). Когда окно загружается, вызывается метод onWindowLoad.

Внутри onWindowLoad мы используем interval(100) для создания наблюдаемой последовательности, которая генерирует значение каждые 100 миллисекунд. Затем мы подписываемся на эту наблюдаемую последовательность и выполнение кода внутри функции обратного вызова, которая передается в subscribe.

Вы можете поместить свою логику обработки события внутри функции обратного вызова subscribe, чтобы выполнять ее каждые 100 миллисекунд (в данном примере).

Таким образом, код внутри subscribe будет выполняться каждые 100 миллисекунд до тех пор, пока страница не будет закрыта или пользователь не нажмет на остановку оператора interval или компонент не будет удален.