具有多个可观察物的组合可观察物

问题描述 投票:0回答:1

这里,我想合并可观察值的值。该代码有效,但是以这种方式进行嵌套订阅不是很好。我正在寻找更好的解决方案。预先感谢。

someObservable().subscribe(
      data => {                      // array of elements
        data.forEach(
          element => {
            anotherObservable(element.id)
              .subscribe(
                anotherData => doSomething(data, anotherData); // both data needed
              );
          }
        );
      }
    );
angular rxjs6
1个回答
1
投票

您可以使用mergeMap

喜欢这个:

return this.someObservable().pipe(
  mergeMap(element=> this.anotherObservable(element.id).pipe(
    map(anotherData => {
      return {
        res1: element ,
        res2: anotherData 
      }
    })
  ))
)

0
投票

您可以在这里使用forkJoin。并从rxjs]导入

import { forkJoin } from 'rxjs/observable/forkJoin';

https://medium.com/@swarnakishore/performing-multiple-http-requests-in-angular-4-5-with-forkjoin-74f3ac166d61

© www.soinside.com 2019 - 2024. All rights reserved.