【发布时间】:2017-11-17 20:26:46
【问题描述】:
我在 Angular 中使用 rxJS 并且有一组行为主题,这些主题作为只读的 Observable 公开
public _data = new BehaviorSubject<DataItem[]>([]);
public readonly data$ = this._data.asObservable();
现在我注意到,如果我直接订阅BehaviorSubject 并且出现错误,它将向控制台抛出错误。
但是如果我订阅 Observable 时出现同样的错误,我不会收到任何消息,然后侦听器会自动取消订阅。
我知道这是预期的行为,但是...
我想知道避免代码重复错误的模式是什么,例如
this.myDataService.data$.subscribe(d=> throwSomeError(), e=> handleError(e));
//or use this:
this.myDataService.data$.subscribe(d=> throwSomeError()).catch(e=> handleError(e));
handleError(e)
【问题讨论】:
-
所以你想多次使用同一个错误处理程序而不是每次都指定它?
-
True .. 那将是一种选择 ..
标签: angular error-handling rxjs