angular - 使用 RxJs ConcatMap 不要发送 null 值或空字符串
问题描述
我正在使用 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 请求?
解决方案
this.myService.saveData(this.updatedData)
.pipe(
tap(data1Res => this.onData1Success(data1Res)),
concatMap(() => this.myService.saveOne(this.OneData)),
filter(res => res !== null),
tap(data2Res => this.onData2Success(data2Res)),
...
)
.subscribe(
res => this.onSaveSuccess(), // Reload values
err => console.log('error while saving', err) // Save to file or db
);
推荐阅读
- selenium - Can some one help me implementing ExtentV3HtmlReporter in C#
- python - Python:删除第一个字母之前的所有字符
- java - Hibernate如何处理悲观读取和继承的不兼容问题
- c++ - Qt5 - QBoxLayout 将所有东西堆叠在一起
- c# - 在 Xamarin 的 ViewModel 中绑定来自 Bindablelayout.ItemTemplate 的数据
- javascript - 滚动时移除 CSS 网格轮播中元素的间隙
- spring - 休眠 ListIn 查询两次返回相同的项目
- c# - c# 中的转义(“<”)特殊字符
- python - retokenizer.split Spacy 之后的 retokenizer.merge
- python - 关于 sklearn.metrics.roc_curve() 的几个问题 - Thresholds, Luck-Label, Equal Error Rate