2

我想知道何时取消订阅可观察订阅。并且无需退订。有点难以理解订阅的概念。

我给你举个例子:

this.http
    .get(
        environment.baseUrl + "/user/init",
        this.storageService.getAuthHeader(),
    )
    .subscribe(
        (user: AppUser) => {
            console.log(user.username);
            this.currentUser = user;
        },
        (err: HttpErrorResponse) => {
            log(err);
            this.router.navigateByUrl("/login");
        },
    )
    .add((teardown: TeardownLogic) => {
        // this will get called always after the User is retrieved/ subscription is unsubscribed
        console.log("Unsubscribe automatically ?");
    });

在这个电话中,我得到了一个 Observable。但是我被告知,在组件被销毁后,我需要手动“取消订阅”每个订阅。但没有人能清楚地解释原因。

此外,我总是得到使用 Pipes 的建议(我认为这很有意义,在处理多个相互依赖的异步调用时),但我想知道何时使用它,因为整个 pipe().take(1) 。 ..通话似乎很笨拙或像一种解决方法

我还阅读了有关Subscriptions RxJS的文档,这对我没有太大帮助,但要知道,“teardownLogic”将始终在.unsubscribe()之后应用

我还阅读了 RXJS observable 上的方法 .pipe() 和 .subscribe() 之间的区别

Angular/RxJs 我什么时候应该取消订阅“订阅”

两者都没有真正回答 RxJS / Angular 中订阅的“机制”

4

0 回答 0