【发布时间】:2020-06-10 14:25:35
【问题描述】:
我正在使用 RxJs concatMap 来控制我的应用程序中某些数据的保存。
this.myService.saveData(this.updatedData)
.pipe(
tap(data1Res => this.onData1Success(data1Res)),
concatMap(() => this.myService.saveOne(this.OneData)),
tap(data2Res => this.onData2Success(data2Res)),
concatMap(() => this.myService.saveTwo(this.TwoData)),
tap(data3Res => this.onData3Success(data3Res)),
concatMap(() => this.myService.saveThree(this.ThreeData)),
tap(data4Res => this.onData4Success(data4Res)),
concatMap(() => this.myService.saveFour(this.FourData)),
)
.subscribe(
res => this.onSaveSuccess(), // Reload values
err => console.log('error while saving', err) // Save to file or db
);
目前这可行,但即使说“this.OneData”为空或为空,它也会执行...我怎样才能让它不发送本质上的 NoOpp 请求?
【问题讨论】:
-
您可以使用 filter(r => r !== null ) 过滤空值或其他任何内容
-
感谢您的回复,那么调用会是什么样子...concatMap(filter(() => this.myService.saveOne(this.OneData) !== null))
标签: angular rxjs rxjs5 rxjs6 rxjs-observables