forkjoin 没有返回结果

Ras*_*sta 2 types rxjs firebase angular google-cloud-firestore

我正在使用 forkJoin 合并两个 firebase 请求的结果

两个请求均完成并记录在控制台中,但 forkJoin 本身的映射函数不会触发,因此不会向应用程序返回任何结果

public initGroup(groupname, username){
  console.log(groupname, username)//This logs
  return Observable.forkJoin([
      this.getGroup(groupname, username),
      this.groupMembers(username, groupname),
    ])
    .map((data)=>{
      console.log(data)//This does not log
      this.group = data;
      return this.group
    })
}
Run Code Online (Sandbox Code Playgroud)

对于各个功能:

public getGroup(groupname, username){
  return (this._af.database.object('/groups/'+groupname) as FirebaseObjectObservable<any>)
      .map((group)=>{
       console.log(group)//This logs
       return group
  })

}
 public groupMembers(username, groupname){
  return  this.afService.getUserItems(groupname)
  .map((users:UserInfo[])=>{
    console.log(users)//This logs
    return users
  })
}
Run Code Online (Sandbox Code Playgroud)

我在组件内订阅:

let conn = this.groupService.initGroup(groupname, username)
                  .subscribe((data)=>{
                  console.log(data)//Does not log
                  ......
                })
Run Code Online (Sandbox Code Playgroud)

Ras*_*sta 5

事实证明 forkJoin 不适用于 firebase observables,

当我更新到

public initGroup(groupname, username){
  return Observable.combineLatest([
      this.getGroup(groupname, username),
      this.groupMembers(username, groupname)

  ])
    .map((data)=>{
      console.log(data)//This now logs
      this.group = data;
      return this.group
    })


}
Run Code Online (Sandbox Code Playgroud)

mergeLatest 使其按预期工作