Использование карты для сопоставления с собственностью в rxjs - PullRequest
0 голосов
/ 07 апреля 2020

Я проверял документы ngrx и заметил следующий код

  login$ = createEffect(() =>
    this.actions$.pipe(
      ofType(LoginPageActions.login),
      map(action => action.credentials),
      exhaustMap((auth: Credentials) =>
        this.authService.login(auth).pipe(
          // more code..
        )
      )
    )
  );

Мне просто интересно, какой смысл в этом map(action => action.credentials),? Не можем ли мы просто использовать полезную нагрузку непосредственно в exhaustMap без дополнительных map? как это:

  login$ = createEffect(() =>
    this.actions$.pipe(
      ofType(LoginPageActions.login),
      exhaustMap((login: LoginAction) =>
        this.authService.login(login.credentials).pipe(
          // more code..
        )
      )
    )
  );

1 Ответ

0 голосов
/ 07 апреля 2020

да, вы можете использовать его, как вы упомянули. также вы можете использовать деструктурирование

login$ = createEffect(() =>
    this.actions$.pipe(
      ofType(LoginPageActions.login),
      exhaustMap(({credentials}) =>
        this.authService.login(credentials).pipe(
          // more code..
        )
      )
    )
  );

или если у вас есть дополнительные свойства:

login$ = createEffect(() =>
    this.actions$.pipe(
      ofType(LoginPageActions.login),
      exhaustMap(({credentials, flags}) =>
        this.authService.login(credentials, flags).pipe(
          // more code..
        )
      )
    )
  );
...