Я создал службу, которая обрабатывает вызовы HTTP и возвращает ответ вызывающей стороне, только если результат успешен.
Я использую оператор Angular observable Map, чтобы проверить код результата и состояния, и если у ответа нет желаемого результата, он должен остановить конвейер наблюдателя после выдачи специального сообщения об ошибке, которое перехватывается в блоке catchError, который работает, но в то же время получает непогашенную ошибку в консоли.
Угловая версия - 5+, Rxjs версия - 5 +
fetchRecords(): Observable < any > {
return this.httpService.getData('cmpgnInfo/outlets').pipe(
map((response: any) => {
if (response[0].status !== 'ERROR') {
throw new Error('Not able to details.');
}
return response[0].results;
}),
catchError(err => Observable.throw(this.showError('Outlets', err)))
);
}
showError(logString: string, message ? : string) {
this.logService.error(`Failed to load ${logString}`);
this.modalService.showErrMessage(message);
}
как бороться с этой ошибкой подписчика? что не так с кодом, который вызывает это.
Subscriber.js: 247 Uncaught TypeError: Невозможно прочитать свойство
'ngOriginalError' из неопределенного
в getOriginalError (core.js: 1430)
at ErrorHandler._findOriginalError (core.js: 1548)
at ErrorHandler.handleError (core.js: 1505)
в Object.next (core.js: 5508)
на SafeSubscriber.schedulerFn [как _next] (core.js: 4342)
на SafeSubscriber .__ tryOrUnsub (Subscriber.js: 243)
на SafeSubscriber.next (Subscriber.js: 190)
по адресу Subscriber._next (Subscriber.js: 131)
на Subscriber.next (Subscriber.js: 95)
в EventEmitter.Subject.next (Subject.js: 56)
на EventEmitter.emit (core.js: 4322)
на eval (core.js: 4782)
в ZoneDelegate.invoke (zone.js: 334)
в Zone.run (zone.js: 126)
в NgZone.runOutsideAngular (core.js: 4708)