Angular 6和Rxjs 6 switchMap /如何将第一个可观察对象的结果传递给另一个可观察对象

时间:2018-08-16 11:53:00

标签: angular rxjs google-cloud-firestore switchmap

我在使用switchMap时遇到问题。我想做的是:

1)从Firestore DB中获取第一个对象/对象的属性作为可观察对象

2)使用第一个Observable的属性并进行另一个Firestore调用,以获取另一个Observable-它取决于第一个Observable。

我的问题是,如何动态地将第一可观察结果传递给第二可观察结果?

有帮助吗?

user.service:

this.userCollection = this.afs.collection('users',
      ref => ref.orderBy("user_order", "desc").limit(1));

this.users$ = this.userCollection.valueChanges();
return this.users$

task.service:

getUserTask(users: User[]): Observable<UserTask[]> {
this.tasksCollection = this.afs.collection('user_tasks',
      ref => ref.where("user_id", "==", users[0].user_id));

    return 

this.userTaskCollection.valueChanges();
}

myComponent.ts:

this.user$ = this.userService.getUser();
const userTaskResult = this.user$.pipe(
      switchMap((user) => this.userTaskService.getUserTask(user))
    );

    userTaskResult.subscribe(x => console.log(x)); //returns nothing

0 个答案:

没有答案