【发布时间】:2018-12-28 14:48:20
【问题描述】:
看看这两个小测试:
@Test
public void test1() {
Observable.range(1, 10)
.groupBy(v -> v % 2 == 0)
.flatMap(group -> {
if (group.getKey()) {
return group;
}
return group;
})
.subscribe(System.out::println);
}
@Test
public void test2() {
Observable.range(1, 10)
.groupBy(v -> v % 2 == 0)
.toMap(g -> g.getKey())
.flatMapObservable(m -> Observable.merge(
m.get(true),
m.get(false)))
.subscribe(System.out::println);
}
我希望两者都以相同的顺序返回一个数字列表,所以:
1 2 3 4 5 6 7 8 9 10
但第二个例子返回
2 4 6 8 10 1 3 5 7 9
改为。
似乎在第二个示例中merge 正在执行concat,实际上如果我将其更改为concat,结果是相同的。
我错过了什么?
谢谢。
【问题讨论】:
标签: java functional-programming rx-java reactive-programming rx-java2