Ben ettik got @ ngrx/mağaza ve çalışma etkiler ince, ancak, sadece orada (etkileri) API çağrıları aa çok olacak ve gerçekleştirdikleriyle getiri varsa Bir 401 hatası Kullanıcıyı giriş sayfasına yönlendirmeliyim. Benim sorunum: Bunu her bir etkide kontrol etmek istemiyorum, aynı şey için bir ton ekstra kod olurdu.Eğik 2,
Numune etkisi
@Effect() getMe$ = this.actions$
.ofType(GET_ME)
.map(action => action.payload)
.switchMap(payload => this.userService.me()
.map(res => ({ type: GET_ME_SUCCESS, payload: res }))
.catch(() => Observable.of({ type: GET_ME_FAILURE }))
);
userService.me()
me(): Observable<User> {
return this.apiService.get(`/auth/me`);
}
apiService.get()
: s örneğin böyle bir kod var diyelimget(endpoint: string): Observable<any> {
return this.http.get(`${this.base}${endpoint}`, this.options())
.map(res => res.json());
}
Bu, gayet iyi çalışır, ancak API, numaralı duruma döndüğünde durumu nasıl ele alacağından emin değilim. Bu durumda kullanıcıyı global olarak nereye yönlendirmeliyim? Bu dava için bir eylem oluşturmalı mıyım? O eylemi nereye göndereyim o zaman? Yoksa tamamen yanlış mı yapıyorum?
Doğru yönde herhangi bir yardım için teşekkür ederiz!
Tamamdır, iş gibi görünüyor, teşekkürler! Sakıncası yoksa sadece bir soru daha: navigasyondan önce başka bir eylem (CLEAR_TOKEN) aramak için bir yol var mı? Gözlemler benim için gerçekten yeni. :) – Andrew
Evet, bu mümkün. Cevabı güncelledim. – cartant