Почему не подписаны наблюдаемые в эффектах NgRx? - PullRequest
1 голос
/ 02 августа 2020

При использовании наблюдаемых в Angular я понял, что наблюдаемый объект не будет работать, если на него не подписана подписка. Однако, когда мы смотрим на rx js, код обычно выглядит примерно так:

getProcess$ = createEffect(() =>
    this.actions$.pipe(
      ofType(ProcessActions.getProcessIdSuccess),
      switchMap((action) =>
        this.processService.getProcess(action.payload).pipe(
          delay(5000),
          map((data: any) => ProcessActions.getProcessSuccess({ payload: data }))
        )
      )
    )
  );

Нет, где в коде вызывается метод subscribe (), который меня несколько сбивает с толку. Как код во внутреннем наблюдаемом выполняется без подписки? Спасибо.

1 Ответ

3 голосов
/ 02 августа 2020

NgRx заботится о подписках под капотом. Вот почему нам не нужно выяснять, когда и как подписаться на различные Observables, которые мы используем в библиотеке.

Вкратце, везде, где возможно (это очень часто), строго избегайте подписки на Observables в вашем ТС. Вообще говоря, вы хотите использовать канал async где-нибудь в шаблоне.

...