Angular 激活订阅后,如何向订阅添加操作项?

Angular 激活订阅后,如何向订阅添加操作项?,angular,typescript,google-cloud-firestore,rxjs,Angular,Typescript,Google Cloud Firestore,Rxjs,我试图在angular中构建一个管理数据库的服务问题是我试图将订阅存储在服务类而不是组件类上,因此它们都在同一个位置,但据我所知,订阅激活时需要定义订阅的回调。在订阅激活后,是否有任何方法添加到订阅?我查看了.add()操作符,但这似乎只有在取消订阅时才起作用 编辑 下面是我能想到的最好的函数;这是可行的,但似乎并不优雅,甚至不是最佳实践 test(col, doc, callback) { (this[col][doc] as Observable<unknown>)

我试图在angular中构建一个管理数据库的服务问题是我试图将订阅存储在服务类而不是组件类上,因此它们都在同一个位置,但据我所知,订阅激活时需要定义订阅的回调。在订阅激活后,是否有任何方法添加到订阅?我查看了.add()操作符,但这似乎只有在取消订阅时才起作用

编辑
下面是我能想到的最好的函数;这是可行的,但似乎并不优雅,甚至不是最佳实践

  test(col, doc, callback) {
    (this[col][doc] as Observable<unknown>) = this.afs
      .collection(col)
      .doc(doc)
      .valueChanges().subscribe(val => {callback(val)})
  }
测试(列、文档、回调){
(此[col][doc]为可见)=this.afs
.收集(col)
.doc(doc)
.valueChanges().subscribe(val=>{callback(val)})
}

我是通过观看一段完全不相关的视频得到答案的,答案是根本不订阅并从服务返回一个可观察的,最后使用异步管道打开可观察的

作为第二个问题,我认为更深层次的问题是,我不完全理解RXJS是如何工作的,我只是重复从在线资源和课程中获得的代码,是否有人知道我可以在线学习一门好课程,将我从0带到专业?你能提供一些代码以便提供更多帮助吗?
async
订阅引擎盖下的observable-但你是对的,最好不要手动订阅。