Жизненный цикл подписки

Итак, у меня есть такой компонент, как

class DialogLoginComponent {
    constructor(
        private dialogRef: MatDialogRef<DialogLoginComponent>,
        private store: Store<Auth.State>
    ) {}

    onDoSomething(): void {
        this.dialogRef.close(); 

        this.dialogRef.afterClosed().subscribe(() =>
            this.store.dispatch(new RegistrationActions.OpenRegistrationDialog())
        );
    }
}

Вопрос в том, останется ли подписка действующей после того, как компонент будет уничтожен, или Angular / RxJS достаточно умен, чтобы отписаться от нее автоматически?

как насчет использования обратного вызова для уничтожения жизненного цикла в DialogLoginComponent?

Anto Antony 05.10.2018 11:24
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
1
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет, подписка будет действовать, если вы:
- где-нибудь отписаться по unsubscribe(), может в ngDestroy? но это не рекомендуется, см. https://medium.com/@benlesh/rxjs-dont-unsubscribe-6753ed4fda87.
- используйте first() или take(1), чтобы вы были уверены, что подписка будет завершена и не останется активной после получения первого результата

Другие вопросы по теме