Nic*_*las 4 java reactive-programming observable rx-java rx-android
我想链接一个连续的数据流并创建一个包含过去结果的结果列表.我可以用以下代码完成.有没有办法在rx链外没有变量?谢谢!
- [0]
- [0, 1]
- [0, 1, 2]
- [0, 1, 2, 3]
- [0, 1, 2, 3, 4]
- [0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
final List<Long> list = new ArrayList<>();
Observable
.interval(1, TimeUnit.SECONDS)
.subscribe(new Action1<Long>() {
@Override
public void call(Long number) {
list.add(number);
System.out.println("- " + list);
}
});
Thread.sleep(100000000L);
Run Code Online (Sandbox Code Playgroud)
↓↓↓↓↓↓↓↓↓
Observable
.interval(1, TimeUnit.SECONDS)
.addToPastResultList() // <--- something like this?
.subscribe(new Action1<List<Long>>() {
@Override
public void call(List<Long> list) {
System.out.println("- " + list);
}
});
Thread.sleep(100000000L);
Run Code Online (Sandbox Code Playgroud)
您正在寻找scan运营商
Observable.interval(1, TimeUnit.SECONDS)
.scan(new ArrayList<>(), (list, integer) -> {
list.add(integer);
return list;
})
.subscribe(list -> System.out.println(list));
Run Code Online (Sandbox Code Playgroud)