【发布时间】:2017-08-17 11:46:47
【问题描述】:
我们有一个带有 Redux (ngrx 4) 的 Angular 4 应用程序。
我们将“isLoggedIn”信息保存在ngrx/store中,当我们调用http时,我们必须首先检查他是否经过身份验证。
我们正在努力实现进行 http 调用的服务:
export class GetDataFromREST() {
constructor(private http: HttpClient, private loginStore: Store) {
this.loggedIn$ = this.loginStore.select(getLoggedIn);
}
...
public getProducts(): Observable<ProductList> {
return /*observable that returns http.get(api) only
after the loggedIn$ emits true */
}
}
请注意,登录不应该是服务的问题 - 一旦登录,它应该执行从它请求的所有调用。
有什么想法吗?
【问题讨论】:
-
你所说的“执行所有从它那里询问的调用”是什么意思。?
-
我误解了你的要求 - 为什么不只是在 getProducts() 方法中进行布尔检查 (isLoggedIn),然后调用 API 或返回一个空的 observable
-
如果应用在商店中将
IsLoggedIn设置为true之前向getProducts()发出调用,则调用不应失败(或返回空)。它应该等到值得到true,然后将http.get返回给调用者。我希望这可以澄清它?
标签: angular rxjs observable ngrx ngrx-store