アプリケーションで不要なHTTPコールの数を制限しようとしていますが、Observableを購読するたびにリクエストがサーバーに送信されます。 httpリクエストを発行せずにobservableを購読する方法はありますか?サービスの私に観察は、以下のようになります。Angular4 Rxjs Observable LimitバックエンドHTTPリクエスト
getServices(): Observable<Service[]> {
return this.http.get(this.serviceUrl).map(res => res.json())._catch(err => err);
}
はその後、私のコンポーネントで私はこのようなことに観察を購読する:
this.serviceService.getServices().subscribe(services => this.services = services);
私が達成したいと思うパートナーはどのようなサービスに何とかデータを格納することです(私はアプリケーション全体でこのデータを使用することができるように、すべてのコンポーネントを別々にリクエストする必要はありませんが、通常、サブスクリプションでデータが受信されることを知りたいと思います)。
...リクエストをトリガーする関数を呼び出さないでください。 <。<あなたがそれを実行したくなければ、なぜあなたはそれに加入しますか?意味がない。 – Chrillewoodz
私はそれが提供するのと同じデータが必要なので、私はそれを購読しています...今は回避策を作成し、 "this.services"をサブジェクトの内部に置き、サブオブジェクトからオブザーバブルを作成しました。 –
これは既によく説明されています。https://stackoverflow.com/documentation/rxjs/8247/common-recipes/26490/caching-http-responses#t=201705280824475411303 – martin