Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 为什么不';订阅的NgRx效应中的t观测值?_Angular_Rxjs - Fatal编程技术网

Angular 为什么不';订阅的NgRx效应中的t观测值?

Angular 为什么不';订阅的NgRx效应中的t观测值?,angular,rxjs,Angular,Rxjs,当我在Angular中使用observable时,我的理解是,除非订阅,否则observable不会运行。但是,在查看rxjs效果时,代码通常是这样的: getProcess$ = createEffect(() => this.actions$.pipe( ofType(ProcessActions.getProcessIdSuccess), switchMap((action) => this.processService.getP

当我在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负责幕后的订阅。这就是为什么我们不必弄清楚何时/如何订阅我们在库中使用的各种观察值


简单地说,只要可能(通常是这样),严格避免订阅TS中的可观察内容。一般来说,您希望在某个模板中使用
async
管道。

NgRx会在后台处理订阅。这就是为什么我们不必弄清楚何时/如何订阅我们在库中使用的各种观察值


简而言之,只要可能(通常是这样),严格避免订阅TS中的可观察对象。一般来说,您希望在某个模板中使用
async
管道。

它正在订阅,但由ngrx订阅。它将查看effect类的所有实例变量,并在它们上运行subscribe,它是由ngrx订阅的。它将检查effect类的所有实例变量,并在它们上运行subscribe