Я использую угловые эффекты 6 и Ngrx. его эффект входа в систему
@Effect({dispatch: false})
login$ = this.actions$.pipe(
ofType<Login>(AuthActionTypes.Login),
tap(action => {
localStorage.setItem(environment.authTokenKey, action.payload.authToken);
console.log('login effect');
this.store.dispatch(new UserRequested());
}),
);
он отправил пользовательский эффект запроса
@Effect({dispatch: false})
loadUser$ = this.actions$
.pipe(
ofType<UserRequested>(AuthActionTypes.UserRequested),
withLatestFrom(this.store.pipe(select(isUserLoaded))),
filter(([action, _isUserLoaded]) => !_isUserLoaded),
mergeMap(([action, _isUserLoaded]) => this.auth.getUserByToken()),
tap(data => {
console.log('login effect');
if (data) {
this.store.dispatch(new UserLoaded({ user: data['user'] }));
localStorage.setItem('options', JSON.stringify(data['options']));
// localStorage.setItem("permissions", data['user'].permissions_list);
data['user'].permissions_list.forEach((item) => {
this.permissionsService.addPermission(item.name);
});
} else {
this.store.dispatch(new Logout());
}
}, error => {
this.store.dispatch(new Logout());
})
);
Если этот эффект был вызван и НЕ ПРОЙДЛ В МЕНЬШЕ ОДИН РАЗ , прежде чем он не будетпозвонил снова. Почему?