我创建了一个处理HTTP调用的服务,并且仅在结果成功时才将响应返回给调用者。
我正在使用Angular Observable Map运算符检查结果和状态代码,如果响应没有所需的输出,则它应在抛出自定义错误消息后停止观察程序管道,该错误消息被catchError块捕获,正常工作,但同时又出现控制台错误。
Angular版本-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未捕获的TypeError:无法读取属性 'ngOriginalError'未定义 在getOriginalError(core.js:1430) 在ErrorHandler._findOriginalError(core.js:1548) 在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) 在评估时(core.js:4782) 在ZoneDelegate.invoke(zone.js:334) 在Zone.run(zone.js:126) 在NgZone.runOutsideAngular(core.js:4708)
答案 0 :(得分:1)
当我不小心扔了一个 null
时,我收到了这个错误。像这样:
throw null;
它与任何订阅或可观察对象无关,至少没有明确说明。
答案 1 :(得分:0)
您没有尝试执行以下操作来代替显示错误:
this.httpService.getData(id).subscribe(
response => {
// success
},
err => {
console.log("Error", err)
})