Rx java 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()

我试图使用RxJava来迭代和数组中的数字,其中每个数字表示我希望在执行下一次发射之前执行的超时

这就是我想到的

    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());
})