use*_*821 1 android java-8 rx-java rx-java2
如何合并两个BehaviorSubjects,使它们表现得像一个BehaviorSubject?
我有这样的事情:
class Solution {
public static void main(String[] args) {
Subject<List<Integer>> left = BehaviorSubject.createDefault(Arrays.asList(1, 2, 3));
Subject<List<Integer>> right = BehaviorSubject.createDefault(Arrays.asList(4, 5, 6));
Single<List<Integer>> merged = left.mergeWith(right).reduce(new ArrayList<Integer>(), (l, r) -> {
List<Integer> merged1 = new ArrayList<>(l.size() + r.size());
merged1.addAll(l);
merged1.addAll(r);
return merged1;
});
merged.subscribe(System.out::println);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望得到一些东西[1, 2, 3, 4, 5, 6],但subscribe什么都不打印.
这应该工作;)
Subject<List<Integer>> left = BehaviorSubject.createDefault(Arrays.asList(1, 2, 3));
Subject<List<Integer>> right = BehaviorSubject.createDefault(Arrays.asList(4, 5, 6));
Observable<List<Integer>> merged = Observable.zip(left, right, (value1, value2) -> {
List<Integer> list = new ArrayList<>();
list.addAll(value1);
list.addAll(value2);
return list;
});
merged.subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |