我需要多次订阅才能获得我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) => {
});
});
}
如您所见,一个订阅内嵌在另一个订阅中,每个订阅都依赖于前一个结果。
订阅3和4可以并行执行。
代码运行良好,但我是否遗漏了什么或者这就是我应该处理多个订阅的方式,即前一个结果决定下一个结果?
更新:订阅#2似乎有问题。订阅尚未完成,但我已经开始迭代列表,这导致我得到了一个重复的用户列表!
flatMap
操作符吗? https://dev59.com/2loV5IYBdhLWcg3wGbfS#36712707 - ekoflatMap
之间有什么区别,也不知道如何将其与我的4个订阅一起使用。 - Reni