0

我有一个场景,我需要比较从初始服务调用和新服务调用获得的相同 URL 的值。

服务等级:

getXRate(): Observable {
   return this.http.get('someURL').subscribe((data) => { return data.json(); } );
}

现在,在 中Component 1,我将此服务ngOnInit称为如下:

ngOnInit(){
   this.service.getXRate().subscribe(data => this.r = data.r);
}

//此时我有第一个值

现在,在 中component 2,调用相同的方法来检查在 中返回的值之间是否有任何差异Component 1

我怎样才能做到这一点?

我尝试使用 ReplaySubject 和 BehaviorSubject但并没有完全摆脱它。

4

1 回答 1

0

有一项服务可以为您存储最后检索到的数据并在您的组件中使用它。

您现有的代码(请注意您在给定示例中订阅了订阅)。
一些“服务”:

lastObject: any;

storeLast(lastObject:any){
  this.lasObject = lastObject;
}

getLastObject(){
  return this.lastObject;
}

getXRate(){
  return this.http.get('url').map(res => res.json());
}

组件 1:

ngOnInit(){
  this.service.getXRate().subscribe(res => this.service.storeLast(res));
}

组件 2:

getAndCompareLast(){
  let object = this.service.getLastObject();
  this.service.getXRate().subscribe(res => { //Do some compare logic...});
}
于 2017-07-30T13:51:31.987 回答