Вы не упомянули версию вашего Angular и RxJS, но я предполагаю, что вы используете RxJS v6 +.
Поэтому вам нужно использовать pipe
метод, чтобы использовать debounceTime
Первый импорт debounceTime
:
import {debounceTime} from 'rxjs/operators';
Тогда:
ngOnInit() {
this.resizeEvent$
.pipe(
debounceTime(300)
)
.subscribe( data => this.initJourney());
}
Обновление
Я думаю, вам нужно изменить Subject<MouseEvent>
на Subject<Event>
.
Обновление 2
Существует другой способ, который не включает debounceTime
.Вы можете использовать setTimeout
в методе прослушивания событий следующим образом.Обязательно удалите тему и подписку в ngOnInit
.
@HostListener('window:resize', ['$event'])
onResize(event) {
setTimeout(() => {
this.initJourney();
},300);
}