Как уничтожить наблюдаемое - PullRequest
0 голосов
/ 21 февраля 2019

Я установил наблюдаемое в моем сервисе, чтобы запрашивать обновления API каждые 2 секунды;наблюдаемое сохраняется, но мне нужно уничтожить его, когда я перемещаю страницы или вызываю другой результат.

Может ли кто-нибудь помочь в том, как уничтожить наблюдаемое на выходе страницы или в виде ручного запроса (например, изеще один вызов API)?

return Observable.interval(2000).switchMap(() => {
  return super.doRequest('/audit/api/' + this.API_version + '/Query/GetFlowHistory?sagaId=' + sagaId, 'get', {}).map((responseData) => {

    return responseData
  }); })

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете использовать takeUntil от RxJS.takeUntil остановит подписку.Смотрите пример ниже.

class myComponent {
  private destroyed$: ReplaySubject<boolean> = new ReplaySubject(1);

  ngOnInit() {
    return Observable.interval(2000).switchMap(() => {
      return super.doRequest('/audit/api/' + this.API_version + '/Query/GetFlowHistory?sagaId=' + sagaId, 'get', {}).map((responseData) => {
        return responseData
      });
    }).takeUntil(this.destroyed$)
  }

  destroy() {
    this.destroyed$.next(true);
    this.destroyed$.complete();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...