如何结合 switchMap 和 combineLatest

How to combine switchMap with combineLatest

我需要结合 RealtimeDatabase 的 UserRole 和 FirebaseAuth 的 User。如何组合这两个查询,其中一个查询基于另一个查询?以下代码允许您同时下载一个文件或两个文件。

from(this.auth.signInWithEmailAndPassword(email, password))
      .pipe(
        switchMap((result: any) => this.getUserRole(result.user.uid)),
        take(1)
      )
      .subscribe(console.warn);

combineLatest([x1, this.getUserRole('8OKFSRBeZ3dY4ecQVn8AyJHBQim2')])
  .pipe(tap(console.warn))
.subscribe();

对你有用吗?注意: combineLatest 可能不是最好的,你可以尝试 forkJoin.

from(this.auth.signInWithEmailAndPassword(email, password))
    .pipe(
        switchMap((result: any) => combineLatest(of(result.user), this.getUserRole(result.user.uid))),
    )
    .subscribe(console.warn);