Observable.timer(0,10000) после отписки все еще вызывается на другой компонент в производственной сборке

Я вызываю один API каждые 10 секунд, используя Observable.timer(0,10000) и отменяю подписку на метод ngOnDestroy(). Но этот вызов не останавливается, и он продолжает получать добавления в очереди и вызывать даже после выхода из этого компонента.

Я пытался уничтожить компонент на ngOnDestroy() функция. Но это все еще его вызов.

он должен был вызываться только для этого компонента и должен вызываться один раз каждые 10 секунд, но если мы переходим к другому компоненту, то вызов добавляется в очередь, и когда он возвращается к компоненту экземпляра, он вызывает несколько раз каждые 10 секунд.

Код:

this._instanceSub = Observable.timer(0,reference.INSTANCE_CALL_INTERVAL) .subscribe(() => { this.getComonentInstance(this.componentId); }); ngOnDestroy() { 
if (this._instanceSub) { 
    this._instanceSub.unsubscribe(); 
} 

1 ответ

Приведенный выше код должен работать, я использовал приведенный ниже код для того же

this.subject = new Subject();

ngOnInit() {
  timer(0, reference.INSTANCE_CALL_INTERVAL).pipe(
    takeUntil(this.subject),
  ).subscribe(t => this.getComonentInstance(this.componentId));
}

и в нгнестрой

ngOnDestroy() {
  this.subject.next();
}
Другие вопросы по тегам