У меня есть сервис, который выглядит так
public getData(): Observable<Data> {
return this.http
.get<Data>(url)
.pipe(
tap(res => res),
(e: any) => e);
}
Я не могу использовать оператор catchError ( Ошибка обработки с rxjs, несовместимым с перехватчиками )
В компоненте я подписываюсь на него и он выдает ошибку при необходимости
this.service.getData().subscribe(res => {
myProp = true;
}, (error) => {
if (error.errorMessage === 'xxx') {
myProp = false;
}
});
Чтобы проверить это, я создал заглушку (которая раньше работала с catchError)
export class ServiceStub {
public getData(): Observable<Data> {
return of({errorMessage: 'some error'});
}
}
Этот код возвращается внутри подписки как 'res', но не в обратном вызове ошибки подписки.
Я пытался Throw new Error('some error')
, но мне нужно вернуть объект.
Я также пытался throw({errorMessage: 'some error'})
, но проверка не удалась с
[объект Объект] брошенный