使用concatMap合并来自两个服务的数据

时间:2018-12-03 16:27:32

标签: angular typescript angular5

我有两个服务,第一个服务中的数据用于从第二个服务中检索数据。我无法从用于从第二个服务获取数据的第一个服务获取的数据访问特定值。 Angular不喜欢“ firstserviceResultsJson.indSsn”。但是,我需要将该数据发送到第二个服务。有什么想法如何将数据从第一服务转换为第二服务吗?

    this.firstService(query).pipe(
      .firstServiceMethod(query).pipe(
        concatMap(firstServiceResultsJson => this.secondService.secondServiceMethod(firstServiceResultsJson.specificParameter))
      )
    .subscribe(combinedResults => (this.finalResultsToSendToView = combinedResults ));

1 个答案:

答案 0 :(得分:0)

请确保firstServiceMethod返回正确的对象,以便您可以访问结果的属性。然后,将concatMap与resultSelector一起使用,以输出外部和内部可观察值的结果。示例:

this.firstService
  .firstServiceMethod(query)
  .pipe(
    concatMap(
      firstServiceResultsJson =>
        this.secondService.secondServiceMethod(firstServiceResultsJson.specificParameter),
      (outer, inner) => [outer, inner]
    )
  )
  .subscribe(
    combinedResults => (this.finalResultsToSendToView = combinedResults)
  );

Demo