服务 - 通过广播事件在Angular 4中进行组件交互

时间:2018-01-08 12:23:02

标签: angular rxjs

我正在点击从服务器获取数据的服务。一旦数据到达,我希望将其处理成适当的结构,然后精炼的结果是我希望存储在另一个服务中的结果。为了将数据从数据处理器功能共享到服务,我希望使用一个事件。

有没有办法可以做到。我使用过RxJS的广播事件。

2 个答案:

答案 0 :(得分:1)

您的服务从服务器获取数据,可能会返回一个observable。 您可以使用注册订阅观察 .subscribe((data: any) => { // your refiner code });语法。

由于您正在使用observable,请尝试使用另一个observable与您的第二个服务进行通信。 请提供有关您的代码的更多信息,以便我能够提供正确的帮助。

答案 1 :(得分:1)

如果您可以控制第二项服务,则可以使用主题。例如

   this.myservice1.fetch()
    .map(data=>yourTransformFunction(data))
    //now link the output of this observable (the data received, error
    //and complete signal) into the "entrance" of the service's subject.
    .subscribe(this.myservice2.mySubject) 

在myservice2中:

mySubject = new Subject<any>()

constructor() {
  …
  this.mySubject.subscribe(…/*do the storage, update a store, whatever you like…*/)
  …
}