Rx java RxJava:在数组上的迭代之间使用计时器
我试图使用RxJava来迭代和数组中的数字,其中每个数字表示我希望在执行下一次发射之前执行的超时 这就是我想到的Rx java RxJava:在数组上的迭代之间使用计时器,rx-java,rx-java2,Rx Java,Rx Java2,我试图使用RxJava来迭代和数组中的数字,其中每个数字表示我希望在执行下一次发射之前执行的超时 这就是我想到的 AtomicInteger index = new AtomicInteger(0); Long[] intervals = {1L,2L,3L,4L}; Observable.fromArray(intervals) .zipWith(Observable.interval(intervals[index.getAndIncrement()
AtomicInteger index = new AtomicInteger(0);
Long[] intervals = {1L,2L,3L,4L};
Observable.fromArray(intervals)
.zipWith(Observable.interval(intervals[index.getAndIncrement()], TimeUnit.SECONDS), (a,b) -> a)
.subscribe(event -> {
System.out.println(LocalDateTime.now());
});
这段代码中的问题是Observable.interval
取数组中的第一个索引,但忽略了getAndIncrement()
,因此我只得到1秒的超时
有什么办法可以让这一切顺利进行吗?试试这个:
Long[]间隔={1L,2L,3L,4L};
Flowable.fromArray(间隔)
.flatMap(间隔->可流动的.timer(间隔,时间单位.秒)
.map(w->interval),1)
.订阅(活动->{
System.out.println(LocalDateTime.now());
})