【发布时间】:2017-03-02 06:00:16
【问题描述】:
我需要多次订阅才能从我的 NoSQL 数据库中获取正确的数据。为了获取特定项目的用户列表,我这样做:
ngOnInit() {
//Subscription 1 (Service): Get project data
this.projectService.getCurrentproject().take(1).subscribe(projectData => {
console.log('Got project data.');
//Subscription 2: Get project user IDS
this.af.database.list('/project_roles/'+projectData.$key)
.subscribe((userMeta) => {
});
});
}
如您所见,订阅、订阅内、订阅内..每个订阅都依赖于前一个 reslt。
订阅 3 和 4 可以并行。
代码运行良好,但我是否遗漏了什么,或者这就是我认为使用多个订阅的方式,前一个的结果取决于下一个?
更新:订阅 #2 似乎有问题。订阅尚未完成,但我开始迭代列表,这给了我一个双重用户列表!
【问题讨论】:
-
您检查了
flatMap运算符吗? stackoverflow.com/questions/36712659/… -
不知道我所做的和
flatMap有什么区别,或者如何将它与我的 4 个订阅一起使用 |:
标签: angular reactive-programming rxjs observable angularfire2