如何使用switchmap重写以下代码

时间:2019-09-03 10:22:01

标签: rxjs rxjs-pipeable-operators

嗨,我有一个使用rxjs库的小代码段,如下所示。运行良好。但是我想使用switchmap重写它。我尝试了所有选项,但是出现错误。想知道是否有人可以帮助我。

this.campaignControl.valueChanges.subscribe(
(value) => {
    this.flightsService.getUnpaginatedFlightsWithinRange(
          {
                 campaignId : value,
                 jobStatuses: this.flightStatusIds,
                 rangeStartDate: 
                 (this.rangeControl.value[0]).toISOString(),
                 rangeEndDate: (this.rangeControl.value[1]).toISOString()
          }
).subscribe(
      (flightsUnpaginated) => {
             this.flights = flightsUnpaginated;
            }
         );
   }
);

谢谢

1 个答案:

答案 0 :(得分:0)

我相信您正在寻找这样的东西:

this.campaignControl.valueChanges.pipe(
  switchMap(value => this.flightsService.getUnpaginatedFlightsWithinRange({
    campaignId : value,
    jobStatuses: this.flightStatusIds,
    rangeStartDate: (this.rangeControl.value[0]).toISOString(),
    rangeEndDate: (this.rangeControl.value[1]).toISOString()
  }),
  tap(flightsUnpaginated => this.flights = flightsUnpaginated)
).subscribe();