角度4.3 httpClient

时间:2017-09-05 14:18:18

标签: angular ngrx ngrx-effects angular4-httpclient

您好Stackoverflow团队!

我有这个效果,我在服务上使用ngrx 4和angular 4.3 httpClient。 问题是我看不到任何关于如何一起使用它们的例子。 我现在看到了,使用httpclient我们需要使用subscribe()方法,因此不清楚是什么,例如在以下代码上返回:

@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(AUTH) 非常感谢

1 个答案:

答案 0 :(得分:1)

.exhaustMap是一个运算符,它将订阅到回调代码返回的任何observable。在观察完成之前,它会继续倾听。如果您知道总会有一个响应,则可能需要添加.login(auth).take(1)

@Effect将属性变量声明为Observable<action>。在引导期间,ngrx库将是在应用程序中注册的所有效果上调用subscribe的库。

这就是为什么你在任何文档中都没有看到subscribe调用的原因。这是由图书馆为您完成的。