2017-03-19 10 views
1

私はアンギュラ2とObservableの初心者です。 私はサービスとしてgetCurrentUserDetails()という機能を持っています。これは、現在のユーザの詳細で観測可能なものを返します。私はすべてのルートアクセスでこれを使用しています。ObservablesとしてのHTTPリクエスト

この機能にアクセスするたびに、httpリクエストをデータベースに制限したいと考えています。

可能であればデータを返す関数を作成して、httpリクエストを作成してデータを取得し、そのデータを返します。

publishReplay()->refCount()->take(1) 

このたび、あなたはこれに加入することを意味します

private currentUser: any; 
getCurrentUserDetails(){ 

     if(!this.currentUser){ 
      this.currentUser = this._http.get('getcurrentuserdetails').map((res:Response) => res.json()).share(); 
      return this.currentUser; 
     } 
     else { 
      return this.currentUser; 
     } 
    } 

答えて

1

私はあなたの代わりにshare()オペレータのこのような何かをしたいと思います:以下

は、私が試したコードですキャッシングされた値を受け取ることがわかり、 take(1)オペレータは、ソースに加入してより多くのHTTP要求を引き起こすことなく、チェーンを直ちに完了させます。

+0

こんにちは@martin、ありがとう、これは魅力的でした。 –

関連する問題