0

假设我有类似下面的代码

this.sharedService.getvalorMensalObservable().pipe(
  switchMap(x => {
    this.valorMensal = x;
    return this.simuladorGvService.obterTaxasRecebaRapido(this.valorMensal);
    //instead of returning, I wish to make more service calls and then more than one subscribe

  })
).subscribe(response => {
  this.taxas = response;
  if (this.taxas != null) {
    this.taxasModificadas = true;
  }
});

我需要一个很好的例子来说明如何进行多个服务调用,因此我希望进行更多调用和更多订阅操作,而不是从一个服务返回然后执行订阅。实际上,如果有不止一种方法,我想知道每一种可能的好方法......承诺,任何地图结构(ConcatMap?)。这里真的很欢迎例子

4

1 回答 1

0

有多个运算符可以将一个可观察对象映射到另一个对象。每个都有其独特的用例。这完全取决于可观察对象如何相互依赖。我建议您查看此处以了解常见映射策略之间的区别。

关于您发布的代码,您可以继续管道操作员进行多次调用。

this.sharedService.getvalorMensalObservable().pipe(
  switchMap(x => {
    this.valorMensal = x;
    return this.simuladorGvService.obterTaxasRecebaRapido(this.valorMensal);
  }),
  switchMap(x => this.otherService.transformData(x)),
  switchMap(x => this.someotherService.transformData(x)),
  .
  .
).subscribe(response => {
  this.taxas = response;
  if (this.taxas != null) {
    this.taxasModificadas = true;
  }
});
于 2020-05-04T12:10:57.450 回答