【发布时间】:2021-02-12 00:58:25
【问题描述】:
我有两个相同类型的 Observable,我想合并为一个 Observable 并删除重复项。
到目前为止,我基本上尝试了所有 rxjs 运算符,但没有一个能满足我的需要。见附图:很多 rxjs 操作符改变了结果 observable 的类型。
const a: Observable<Foo[]> = ...
const b: Observable<Foo[]> = ...
这是我检索一些数据的两个调用。
现在最接近的两个操作:
combineLatest(a, b);
这个用两个索引创建了一个新数组,a 的结果将进入索引 0,b 的结果将进入索引 1。我不能这样使用它。
const c = a.pipe(mergeMap(a1 => b.pipe(map(a2 => [...a1, ...a2]))));
这个差点搞定了。这里的问题如下: 让我们假设 a 返回 2 个结果(示例值:1 和 2)并且 b 也返回 2 个结果(示例值:2 和 3)。所以“2”是重复的,它不应该在结果 observable 中出现两次。
有谁知道运算符的组合,以便我可以组合两个可观察对象并删除重复项?
【问题讨论】:
标签: javascript angular