【发布时间】:2017-12-25 19:59:10
【问题描述】:
我有一个主题成员的服务。 Subject 提供了一个类的实例:
public selectedProjectSubject: Subject<Project> = new Subject();
Subject 的值是用一个方法更新的:
public updateSelectedProject(project: Project) {
this.selectedProjectSubject.next(project);
}
在几个课程中我订阅了主题:
this.projectSubscription = this.projectService.selectedProjectSubject.subscribe((project: Project) => {
this.projectSelected = project;
});
直接订阅 Subject 或为 Subject (Observable) 提供其他方法是一种好习惯吗?
【问题讨论】:
-
如果您希望在应用程序的不同位置共享您的项目对象,并在将新项目传递给主题时随处更新它,那么这是要走的路。您不应该使用方法返回主题本身,只需订阅它即可。
-
感谢您的回答。
-
不客气。 RxJS 和 Observables 倾向于遵循函数式编程范式,因此你应该尽量避免使用 setter 和 getter :-)
标签: angular typescript rxjs