2017-09-05 9 views
1

こんにちは、Stackoverflowチーム!角度4.3のNGRX 4エフェクト

私はこの効果があり、サービスでは4.3のhttpClientでngrx 4を使用しています。 問題は、それらを一緒に使用する方法の例が見えないことです。 私は今、HTTPClientので我々は次のコードで、たとえば、返すために何、あることが明確ではないので、サブスクライブ()メソッドを使用する必要があることを見た:

@Effect() 
login$ = this.actions$ 
.ofType(Auth.LOGIN) 
.map((action: Auth.Login) => action.payload) 
.exhaustMap(auth => 
    this.authService 
    .login(auth) 
    .map(user => new Auth.LoginSuccess({ user })) 
    .catch(error => of(new Auth.LoginFailure(error))) 
); 

だから、私は理解する必要がありますこのライン上のロジック: の.login(認証) 本当にありがとうございました

答えて

0

.exhaustMapコールバックコードによって返される任意の観測にをサブスクライブしますオペレータです。観察可能なものが完成するまで聞き続けます。常に1つの応答しかないことがわかっている場合は、.login(auth).take(1)を追加するとよいでしょう。

@Effectは、プロパティ変数をObservable<action>と宣言します。ブートストラッピング中、ngrxライブラリはアプリケーションに登録されているすべてのエフェクトについてsubscribeを呼び出します。

そのため、いずれのドキュメントでもsubscribeコールが表示されないのはこのためです。これは図書館によって行われます。