我有一个主题成员的服务。 Subject提供了一个类的实例:
public selectedProjectSubject: Subject<Project> = new Subject();
使用以下方法更新主题的值:
public updateSelectedProject(project: Project) {
this.selectedProjectSubject.next(project);
}
在几个课程中,我订阅了主题:
this.projectSubscription = this.projectService.selectedProjectSubject.subscribe((project: Project) => {
this.projectSelected = project;
});
直接订阅主题或向主题(可观察)提供其他方法是一种好习惯吗?
答案 0 :(得分:0)
我在很多地方使用BehaviorSubject
我想阻止我的队友在包含主题的服务之外使用.value
,所以我通常会对所有主题执行以下操作:
private _selectedProject = new Subject<Project>();
get selectedProject(): Observable<Project> {
return this._selectedProject;
}
然而,实际上并没有太多担心以它的方式访问它,如果你需要它,你可以随时改变我的方法,甚至不用只使用{{1}重构任何调用者访问者。