Я не совсем понял следующее поведение:
let throw$ = Observable.throw(() => "Server error");
let testClick$ = Observable.fromEvent(this.saveButton.nativeElement, 'click')
.pipe(
switchMap(() => throw$),
finalize(() => console.log("finalize testClick$"))
);
let okClick$ = testClick$.pipe(
catchError(() => Observable.of({})),
finalize(() => console.log("finalize okClick$"))
);
let koClick$ = testClick$.pipe(
catchError((error) => Observable.of(error)),
finalize(() => console.log("finalize koClick$"))
);
okClick$.subscribe();
koClick$.subscribe();
Как видите, throw$
observable имитирует HTTP-запрос, который возвращает ошибку.
Когда я нажимаю на saveButton
, поведение:
finalize testClick$
finalize okClick$
finalize testClick$
finalize koClick$
Проблема в том, что подписки не сохраняются.
Я думал, что при обнаружении внутренней повышенной ошибки с помощью catchError
подписка сохранится.
Есть идеи о том, как сохранить мой наблюдаемый щелчок сохранения?