在我的角度服务中,我有一个返回自定义退订功能的服务。 如果我直接退订,则称为,但如果我通过
退订.pipeUntil(this.destroy$)
未调用自定义取消订阅功能。
服务的功能(缩短)
myObservableFunction(): Observable<any[]> {
return new Observable<any[]>((observer) => {
const sub = this.authService.doGetRequest(`myRoute`)
.subscribe(
(d) => {
observer.next(e)
},
(e) => observer.error(e)
);
return {
unsubscribe() {
sub.unsubscribe();
}
};
});
}
这确实会调用sub.unsubscribe():
this.myService.myObservableFunction()
.subscribe()
.unsubscribe()
这不是:
this.myService.myObservableFunction().pipe(takeUntil(this.destroy$)
.subscribe()
.unsubscribe()
$ destroy为主题 这样发出的
ngOnDestroy() {
this.destroy$.next(true);
this.destroy$.unsubscribe();
}