繁体   English   中英

RxJS如何使用默认错误处理功能返回Observable

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM