繁体   English   中英

在一个组件上管理多个 RxJs Observable

[英]Managing multiple RxJs Observables on a component

下面是我的应用程序中一个组件的代码片段,其中我订阅了多个 observable 并在我分别获取值后加载数据 [一个 api 调用]。

  ngOnInit() {
    this.combinedObservable$ = combineLatest(
      this.service1.getStudentId(),
      this.service2.getTeacherId(),
      this.service3.getResultId(),
      this.service4.getReportId(),
      this.service5.getYearId(),
    ).subscribe(value => {
      this.studentId = value[0];
      this.teacherId = value[1];
      this.resultId = value[2];
      this.reportId = value[3];
      this.yearId = value[4];
      // Load Data for the page by making an api call
      this.loadData(value[0], value[1], value[2], value[3], value[4]);
    });
  }

  ngOnDestroy() {
    this.combinedObservable$.unsubscribe();
  }

在这种情况下,CombineLatest 对我有用,但是 loadData 被多次调用。 我相信这是因为 observables 在更新后会发出值。 服务中的 [studentId、teacherId、resultId、reportId、yearId] 的初始值设置为 0,以满足 combineLatest 的需求。

在收到所有 5 个值后,有什么方法可以调用 LoadData 方法 [api call] [不是 0 的初始值]? 像 onComplete 这样的东西?

combineLatest替换forkJoin ,这将在发出之前等待所有 observable 完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM