Вы можете проверить, определено ли eDetails
внутри карты, и выдать ошибку, используя throwError
. Вы можете попробовать следующее
import { throwError } from 'rxjs';
getDetailsById(eId: number): Observable<Details> {
return this.api.post('detailsapi', cacheOptions, { Id: eId })
.pipe(
map((eDetails: any) => {
if (eDetails && eDetails !== null) {
id = eDetails.eId,
subDetails = this.mapSubDetails(eDetails.eSubDetails || []);
return subDetails;
} else { // <-- throw error here
throwError(new Error('Received response null'));
}
}),
catchError((err) => {
const template: Template = {
id: 0,
subEquipment: []
};
return Observable.throw(err)
})
);
}
throwError
возвращает ошибку, которая немедленно выдает уведомление об ошибке.