只是好奇未被引用的Subscription
实例是否需要取消订阅?例如this demo调用:
onSubmit(creds: Creds) {
this.authService.login(creds).subscribe();
}
所以每次某人登录时,都会创建并返回一个订阅
实例,但没有它的句柄。
IIUC 这些只会被垃圾收集,但我想为了安全起见我会仔细检查。
最佳答案
如果 Observable 完成,则无需取消订阅。使用 http 服务创建的 Observable 将在调用后完成。
也就是说,最好还是取消订阅或使用 takeUntil 子句。
finalise = new Subject<void>();
onSubmit(creds: Creds) {
this.authService.login(creds).pipe(takeUntil(finalise)).subscribe();
}
ngOnDestroy() {
this.finalise.next();
this.finalise.complete();
}
这样您就可以使用同一个主题来完成您所有的 Observable,而不是管理许多订阅。
关于javascript - 没有引用句柄的订阅实例是否需要退订?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53843889/