我們有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