Мне нужно подписаться несколько раз, чтобы получить правильные данные из моей базы данных 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'? http://stackoverflow.com/questions/36712659/angular-2-two-backend-service-calls-on-success-of-first-service/36712707#36712707 – echonax
Не знаете, в чем разница между тем, что я сделал, и 'flatMap ', или как использовать его с моими 4 подписками |: – Reni