在Angular中使用可观察对象时,我的理解是,除非已订阅可观察对象,否则它将不会运行。但是,在查看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 }))
)
)
)
);
在代码中不存在一个名为subscription()的方法,这对我来说有些困惑。内部可观察的代码如何在不订阅的情况下运行?谢谢。
答案 0 :(得分:2)
NgRx负责后台的订阅。这就是为什么我们不必弄清楚何时/如何订阅库中使用的各种Observable的原因。
作为简要说明,请尽可能避免在您的TS中订阅Observable。一般来说,您想在模板的某处使用async
管道。