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? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |