angular - forkjoin 没有返回结果

标签 angular firebase types rxjs 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
    })
}

对于各个功能:

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
  })
}

我在组件内订阅:

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

最佳答案

事实证明 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
    })


}

combineLatest 使其按预期工作

关于angular - forkjoin 没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931476/

相关文章:

html - 从 Angular4 中生成的 li 引用元素属性

java - 如何将 JSONObject 写入 firebase 数据库节点

inheritance - 使用函数式编程风格数据类型的模型继承

angular - RXJS重复查询直到满足条件?

node.js - 恢复node_modules文件夹

javascript - RxJS Operator 延迟处理后续事件

Firebase 身份验证 - 无法添加电话号码进行测试

javascript - 无法从 Firebase 中的集合访问特定字段

types - 这种模式似乎很详尽,但我仍然收到警告

haskell - 为什么我无法让这段代码正常工作,从 "Thinking With Types"逐字输入