为什么没有订阅 NgRx 效果中的可观察量?

  • 本文关键字:观察 NgRx angular rxjs
  • 更新时间 :
  • 英文 :


当在Angular中使用observable时,我的理解是,除非订阅了observable,否则它不会运行。然而,当观察rxjs对代码的影响时,我们通常会这样做:

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((方法,这让我有些困惑。在没有订阅的情况下,内部可观察的代码是如何运行的?谢谢

NgRx在后台负责订阅。这就是为什么我们不必弄清楚何时/如何订阅我们在库中使用的各种Observable。

顺便说一句,只要可能(通常是这样(,请严格避免在TS中订阅Observables。一般来说,您希望在某个模板中使用async管道。

最新更新