2017-09-05 1 views
1

Équipe Hi Stackoverflow!Effets NGRX 4 avec angulaire 4.3 httpClient

J'ai cet effet, et j'utilise ngrx 4 avec angulaire 4.3 httpClient sur le service. Le problème est que je ne pouvais pas voir d'exemples sur la façon de les utiliser ensemble. je vis maintenant, avec httpclient nous devons utiliser la subscribe() méthode, on ne sait pas être, quoi revenir, par exemple sur le code suivant:

@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))) 
); 

Alors, je dois comprendre la logique sur cette ligne: .login (auth) Merci beaucoup

Répondre

0

le .exhaustMap est un opérateur qui abonner à tout retournés observables par le code de rappel. Il va continuer à écouter jusqu'à ce que l'observable soit complet. Vous voudrez peut-être ajouter un .login(auth).take(1) si vous savez qu'il y aura toujours une seule réponse.

@Effect déclare une variable de propriété sous la forme Observable<action>. Lors de l'amorçage, la bibliothèque ngrx sera celle qui appelle subscribe sur tous les effets enregistrés dans votre application.

C'est pourquoi vous ne voyez aucun appel subscribe dans la documentation. Ceci est fait pour vous par la bibliothèque.