Всем добрый день.
Есть такая цепочка:
....
private _onDestroy$ = new Subject<void>();
....
this.appState.event$
.pipe(
flatMap((event: ICustomEvent) => {
if (event) {
this._event = event;
return this.service.getEvenContent(event.id, {
type: event.type,
date: event.date,
});
} else {
return throwError('Error');
}
}),
takeUntil(this._onDestroy$),
finalize(() => this.isLoading = false)
)
.subscribe(
result => {
this.content = result.text;
},
error => {
console.log(error);
}
);
....
ngOnDestroy(): void {
this._onDestroy$.next();
this._onDestroy$.complete();
}
Вопрос в том как правильно завершить всю цепочку вызовов, т.к. на сколько я понимаю у меня сейчас
finalize(() => this.isLoading = false) не вызывается, а takeUntil(this._onDestroy$) завершить подписку только на appState.event$ но не на service.getEvenContent()?
Или что использовать вместо flatMap/mergeMap в таких случаях?