2017-10-28 6 views
0

アプリケーションがロードされると、APIを呼び出して結果を保存する必要があります。私はサービスでこれをやっています。私はその後、コンポーネントでサービスを使用したいと思います。具体的には、保存された内容が変更された場合、その変更を使用するコンポーネントを更新したいと考えています。私はObservables経由でこれを実装しようとしていますが、APIからの応答を保存する方法を理解していません。 this.APIResAPIRes: Object[];非同期オブザーバブルの購読方法の理解

どのように私は、サービスのAPIResコンポーネント内に「購読する」ことができます

fetchAPI() { 
     return this.http.get(`${this.baseURL}/endpoint`) 
     .map(res => res.json()) 
     .do(data => { 
      this.APIRes = data; 
     }); 
    } 

:私はこれを持っているサービスで

APIResのタイプをObservable<Object[]>;に変更しようとしましたが、新しいデータをservice.APIResにプッシュしているように見えません.nextオプションは利用できません。

おかげ

+0

を購読することができますので、しかし、fetchAPI機能は、Observableを返します。代わりにコンポーネントがサブスクライブするbehaviorsサブジェクトに配置します。 – Alex

答えて

0

それは単にあなたのGET要求の結果だとしてthis.APIResは、Observableされませんように見えます。

あなたがサービスにデータを格納したいし、そこからあなたのアプリ間でフェッチされたデータを共有する場合、あなたはおそらく、保存したいと思うまあその

+0

基本的に私の問題は、非同期httpとコンポーネント間の同期を組み合わせようとしていることです。 –

+0

コンポーネント内の変更を聴くだけで(おそらく角型のOnChangesライフサイクルフックを使用する必要があります)通常 – user184994

関連する問題