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();
}