在Angular的循环内订阅可观察对象

时间:2018-10-04 12:15:33

标签: angular rxjs

我有一个用例,我需要订阅一个Observable,然后循环响应,以便使用来自第一个Observable的数据来订阅另一个Observable。 / p>

  getTasks(taskType: Observable<any>): void {
    taskType // Subscribing to the first Observable
      .subscribe(
        (tasks: any) => {
          let row: InboxTasks;
          for (const task of tasks) { // Looping through the result
            if (task.assigned_id) { // I need to extract that data in order to use it as an argument of the second Observable below
              this.auth.getUserById(task.assigned_id).subscribe((user) => this.username = `${user.firstname} ${user.lastname}`);
            }
            row = {
              assigned: this.username ? this.username : '', // Here I use my newly created property
              task: task.displayName
            };
            this.rowData = [
              ...this.rowData,
              row
            ];
          }
        }
      );
  }

使用该方法,可以在完成第二个Observable之前执行循环。 在那种情况下,我如何设法使用第二个Observable

谢谢

1 个答案:

答案 0 :(得分:3)

您可以首先根据第一个Observable的响应收集所有内部Observable,然后等到它们全部以WbExport -file='E:\\TestingDATABASE\\history_XAXPGRFE.csv' -type=text -delimiter=','; select * from %SOURCE%.XAXPGRFE where XPORIG='JAVAPGM' 完成:

forkJoin