加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 行为主题vs Observable错误处理

发布时间:2020-12-17 16:59:56 所属栏目:安全 来源:网络整理
导读:我在Angular中使用rxJS并且具有一组作为只读Observable公开的行为主题 public _data = new BehaviorSubjectDataItem[]([]);public readonly data$= this._data.asObservable(); 现在我注意到,如果我直接订阅BehaviorSubject并且出现错误,它会将错误抛给控制
我在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)

解决方法

第二个选项将更好地工作,因为BehaviorSubject将始终在错误上终止流.

这里有更多信息:

How do I throw an error on a behaviour subject and continue the stream?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读