【发布时间】:2021-02-11 22:49:26
【问题描述】:
我有以下序列要执行:
- 读取一小段数据
- 清除数据存储
- 重新保存 (1) 中的一小段数据
每个操作都由返回Observable 的方法处理。这是我想出的顺序:
this.storage.get('key').pipe(
switchMap((x) => this.storage.clear().pipe(map(()=>x))),
switchMap((x) => this.set('key', x)
);
重复使用switchMap() 感觉很脏。这个序列确实有效,但我想知道是否有简化。
我尝试使用concat() 启动,但它会单独发出每个值。我认为我不能使用merge,因为它并行启动每个可观察对象,我显然不希望在执行.get() 或.set() 时执行.clear()。
我可以使用什么运算符或创建函数:
- 启动第一个 Observable
- 等到第一个 Observable 开始第二个
- 然后返回两个结果的数组(或映射)
或是否有简化对switchMap()的双重调用?
【问题讨论】:
标签: angular typescript rxjs