我想知道何时取消订阅可观察订阅。并且无需退订。有点难以理解订阅的概念。
我给你举个例子:
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() 之间的区别
和
两者都没有真正回答 RxJS / Angular 中订阅的“机制”