Plusieurs écouteurs d'effets doivent être exécutés jusqu'à ce que l'utilisateur se déconnecte. En tant que tel, j'essaie de mettre en œuvre OnRunEffects.Présentation de Ngrx OnRunEffects
Un segment de mes user.actions.ts est:
export const LOAD_USER = '[Users] Load User';
export class LoadUser implements Action {
readonly type = LOAD_USER;
}
export type UserActions = LoadUser;
Je suis en train de mettre en œuvre OnRunEffects comme:
ngrxOnRunEffects(resolvedEffects: Observable<EffectNotification>) {
return this.actions
.ofType(UsersActions.LOAD_USER)
.exhaustMap(() => resolvedEffects.takeUntil(AuthActions.LOGOUT_SUCCESS)
}
Cependant, takeUntil se plaint qu'il a besoin que Observable. J'ai donc essayé:
ngrxOnRunEffects(resolvedEffects: Observable<EffectNotification>) {
return this.actions
.ofType(UsersActions.LOAD_USER)
.exhaustMap(() => resolvedEffects.takeUntil(
Observable.of(new AuthActions.LogoutSuccess())
)
}
Cela à son tour, provoque l'effet de ne pas déclencher. De la lecture du code, on dirait qu'il déclare:
- Quand vous voyez ces actions
- exécuter les effets
- jusqu'à ce que vous voyez cette autre action.
Qu'est-ce que je fais mal?
pourquoi ne pas simplement utiliser 'filter'? Dans votre effet, 'ofType <>(). Filter (EST-CE QUE L'UTILISATEUR EST CONNECTÉ)' – Maxime
Exemple s'il vous plaît? – Brandon
J'ai fait une bonne réponse, pas sûr que cela corresponde à votre cas d'utilisation mais pourrait aider – Maxime