Тип 'Наблюдаемый'нельзя назначить типу' Observable <Action>' - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь понять effects в NgRX 6

У меня есть пример эффекта:

  @Effect()
  createNonce$: Observable<Action> = this.actions$.pipe(
    ofType(INVALID_SESSION),
    map(() => generateNonce(32)),
    map(nonce => of(this.store.dispatch(new IdentityRedirect(nonce)))),
    catchError(error => of(console.error(error)))
  );

Что я хотел бы достичь, это

  1. Прослушайте INVALID_SESSION
  2. Позвоните generateNonce и верните результат
  3. Отправьте результат с предыдущей карты

Я получаю следующую ошибку, хотя

[ts]
Type 'Observable<void | Observable<void>>' is not assignable to type 'Observable<Action>'.
  Type 'void | Observable<void>' is not assignable to type 'Action'.
    Type 'void' is not assignable to type 'Action'.

1 Ответ

0 голосов
/ 12 июня 2018
  @Effect()
  createNonce$: Observable<Action> = this.actions$.pipe(
    ofType(INVALID_SESSION),
    mergeMap(() =>
      of(generateNonce(32)).pipe(
        map(nonce => ({ type: REDIRECT_TO_LOGIN, payload: nonce }))
      )
    ),
    catchError(error => of({ type: REDIRECT_TO_LOGIN_FAILURE, payload: error }))
  );
...