我们有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 */
}
}
注意登录不应该是服务的一个问题 - 登录后应该执行的所有呼叫被问到它。
有什么想法?
你是什么意思*“执行所有要求的来电。”*? – martin
我误解了你的要求 - 为什么不只是在getProducts()方法中进行布尔检查(isLoggedIn),然后调用API或返回一个空的可观察值 –
如果应用程序在调用'getProducts() IsLoggedIn'在商店中设置为“true”,呼叫不会失败(或返回空)。它应该等到该值变为“true”,然后将“http.get”返回给调用者。我希望这能澄清它? – veljkoz