Нужно ли отписывать экземпляры подписки без дескрипторов ссылок? - PullRequest
0 голосов
/ 19 декабря 2018

Просто любопытно, нужно ли отписывать Subscription экземпляры, на которые нет ссылок?Например, это демо вызывает:

onSubmit(creds: Creds) {
   this.authService.login(creds).subscribe();
}

Так что каждый раз, когда кто-то регистрируется в экземпляре Subscription, создается и возвращается, но у него нет дескрипторов.

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

1 Ответ

0 голосов
/ 19 декабря 2018

Если Observable завершается, то отпадает необходимость в подписке.Наблюдаемые объекты, созданные с помощью службы http, будут завершены после вызова.

При этом все равно лучше отписаться или иметь предложение takeUntil.

finalise = new Subject<void>();

onSubmit(creds: Creds) {
  this.authService.login(creds).pipe(takeUntil(finalise)).subscribe();
}

ngOnDestroy() {
  this.finalise.next();
  this.finalise.complete();
}

Таким образом, вы можете использовать ту же тему для завершениявсе ваши Observables вместо того, чтобы управлять многими подписками.

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