角度:服务可观察值的回报

时间:2019-09-16 12:11:29

标签: angular rxjs

我有一个组件,可以从服务中调用函数:

// Component
constructor (myService: MyService) { } 

getData() {
  this.myService.getTableData()
}
// Service
getTableData() {
   task.snapshotChanges().pipe(
     finalize(() => {
       ref.getTableId().subscribe(id => id))
     })
   ).subscribe()
}

如何在组件的id方法内的finalize运算符内收到此getData()?我想要类似的东西:

getData() {
   this.myService.getTableData().then(id => console.log(id))
}

1 个答案:

答案 0 :(得分:3)

从组件而不是服务订阅。另外,您不必使用then进行观察。为此仅使用subscribethen用于处理承诺。

// Service
getTableData() {
   return task.snapshotChanges().pipe(
     finalize(() => ref.getTableId())
   )
}

getData() {
   this.myService.getTableData().subscribe(id => console.log(id))
}