Как убедиться, что что-то отписалось в angular 2+ - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь понять подписки в угловых и после некоторого чтения я выбрал следующий подход.

Я использую .pipe (takeUntil ()) для отмены подписки.

Это правильный способ проверить, успешно ли отписалась подписка

// subject I'm using to unsubscribe subscriptions
private onDestroy$ = new Subject();

// The call to load data
this.service.method()
  .pipe(
    takeUntil(this.onDestroy$),
    tap(() => console.log('unsubscribed')) // <== does this run when it unsubscribes ?
  )
  .subscribe((pData => {
  });

OnDestroy:

ngOnDestroy() {
   this.onDestroy$.next(); <== is this necessary ? I'm not sending data
   this.onDestroy$.complete();
}

Я также прочитал, что вам не нужно отписываться от HTTP-запросов, так как он выполняет complete () после получения результата и сам отписывается, это правильно?

Не могли бы вы объяснить мне следующее утверждение:

«Использование оператора вроде takeUntil вместо отмены подписки вручную также завершит наблюдаемое, вызывая любое событие завершения в наблюдаемом.»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...