Понимание Ngrx OnRunEffects


person Brandon    schedule 14.09.2017    source источник
comment
почему бы вам просто не использовать filter? В вашем распоряжении ofType<>().filter(IS THE USER CONNECTED)   -  person maxime1992    schedule 15.09.2017
comment
Пример пожалуйста?   -  person Brandon    schedule 15.09.2017
comment
Я сделал правильный ответ, не уверен, что он подходит для вашего варианта использования, но может помочь   -  person maxime1992    schedule 16.09.2017


Ответы (2)


Поправьте меня, если я ошибаюсь, но вы можете не захотеть run until the user has logged out, вы можете просто захотеть запустить эти эффекты, если пользователь все еще вошел в систему. Если да, то вместо того, чтобы думать о takeUntil:

@Effect()
someEffect$: Observable<Action> = this.actions$
  .ofType<Your_Type>(Your_Action)
  .withLatestFrom(this.store$.select(state => state.users.isUserLoggedIn))
  .filter(([action, isUserLoggedIn]) => isUserLoggedIn)
  // here, you'll receive the actions only is the user is logged in
  // ... your code for the effect
person maxime1992    schedule 16.09.2017
comment
Очень интересно. Спасибо за ответ. Я должен быть в состоянии попробовать это сегодня. - person Brandon; 16.09.2017
comment
Пожалуйста. Поскольку вы заинтересованы в ngrx, я бы порекомендовал вам взглянуть на шаблон (на основе angular-cli), над которым я работал :) Много комментариев для объяснения + readme github.com/maxime1992/angular-ngrx-starter Дайте мне знать, как идут дела после того, как вы попробуете мое предложение :) - person maxime1992; 16.09.2017