1

嗨 Stackoverflow 团队!

我有这个效果,我在服务上使用带有角度 4.3 httpClient 的ngrx 4。问题是我看不到任何关于如何将它们一起使用的示例。我现在看到了,对于 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) 非常感谢

4

1 回答 1

1

.exhaustMap是一个操作符,它将订阅回调代码返回的任何 observables 。它会一直听下去,直到 observable 完成。.login(auth).take(1)如果您知道总是只有一个响应,您可能想要添加一个。

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

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

于 2017-09-05T14:45:53.653 回答