![](/img/trans.png)
[英]Angular 9 : rxjs 6 : how to return a manual Observable of Error
[英]RxJS how to return Observable with default error handling function
在我的应用程序中,我有一些返回Observable的方法:
public myMethodReturningObs(...): Observable {
return this.http.get(...); // this will return an Observable
}
然后在应用程序周围的多个地方调用此方法:
this.service.myMethodReturningObs().subscribe(
(data) => { /* do something with data */ },
(error) => { console.log('Error!'); }
);
// ...
this.service.myMethodReturningObs().subscribe(
(data) => { /* do something else with data */ },
(error) => { console.log('Error!'); }
);
我想知道myMethodReturningObs(...)
内部是否可以附加默认错误处理功能,在我的示例中为console.log('Error!');
,所以我不必每次订阅myMethodReturningObs(...)
返回的Observable时都重复该过程。
理想情况下,我需要类似:
public myMethodReturningObs(...): Observable {
return this.http.get(...)
.onError({ console.log('Error!'); }); // this will return an Observable
}
所以我就可以这样做:
this.service.myMethodReturningObs().subscribe(
(data) => { /* do something with data */ }
);
// ...
this.service.myMethodReturningObs().subscribe(
(data) => { /* do something else with data */ }
);
您可以在基本可观察的错误中捕获错误,对其进行记录并进一步传播
public myMethodReturningObs(...): Observable {
return this.http.get(...)
.catch(e => {
// log error
console.error('Failed', e);
// return same error, so subscriptions also fail
return Rx.Observable.throw(e)
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.