Json 角度2-可见光的返回

Json 角度2-可见光的返回,json,angular,observable,Json,Angular,Observable,在我的服务中,我的可观察性有问题。 我需要取3个玩家的数据。我的订阅将数据从服务签名到局部变量,并将其推送到数组中。很好,但当我从if语句返回数据时,我有一个bug。我只能看到三个球员中的一个。如何存储应用程序整个生命周期的所有数据? 问候 服务: getData(query): Observable<any> { if(this.dataFromDb) { return Observable.of(this.dataFromDb); } return this.h

在我的服务中,我的可观察性有问题。 我需要取3个玩家的数据。我的订阅将数据从服务签名到局部变量,并将其推送到数组中。很好,但当我从if语句返回数据时,我有一个bug。我只能看到三个球员中的一个。如何存储应用程序整个生命周期的所有数据? 问候

服务:

  getData(query): Observable<any> {
if(this.dataFromDb)
{
  return Observable.of(this.dataFromDb);
}

    return this.http.get(query)
      .map(res => res.json())
      .do(res => this.dataFromDb = res)
      .catch(err => Observable.throw(err.json() || 'Błąd');
  }
}
还有一些问题的照片: 启动数据

路线变更后的数据。

必须使用对象“缓存”响应。就我个人而言,我会选择向我的函数发送nick和apiKey,但当您发送查询时,您可以这样做

dataFromDb:any={};
getData(query): Observable<any> {
if(this.dataFromDb[query])
{
  return Observable.of(this.dataFromDb[query]);
}

    return this.http.get(query)
      .map(res => res.json())
      .do(res => this.dataFromDb[query] = res)
      .catch(err => Observable.throw(err.json() || 'Błąd');
  }
}
dataFromDb:any={};
getData(查询):可观察{
if(this.dataFromDb[query])
{
返回可观测的(this.dataFromDb[query]);
}
返回此.http.get(查询)
.map(res=>res.json())
.do(res=>this.dataFromDb[query]=res)
.catch(err=>Observable.throw(err.json()|||'Błąd');
}
}

给这个人一大杯啤酒!很多人都想帮我,但你的回答是正确的。
dataFromDb:any={};
getData(query): Observable<any> {
if(this.dataFromDb[query])
{
  return Observable.of(this.dataFromDb[query]);
}

    return this.http.get(query)
      .map(res => res.json())
      .do(res => this.dataFromDb[query] = res)
      .catch(err => Observable.throw(err.json() || 'Błąd');
  }
}