如何使用Rxjava2每秒传输列表的一个元素

时间:2018-07-06 11:51:25

标签: rx-java2 intervals

我的英语不太好,所以我在StackOverflow上找不到解决方法。 谢谢您的光临! 我对两个场景感到困惑: 1.如何每秒传输列表的一个元素。 喜欢:

Observable.interval(1,TimeUnit.SECONDS)
                .zipWith(Observable.just(1, 2, 3), (aLong, integer) -> aLong)
                .subscribe();

Observable.just(1, 2, 3)
                .delay(5,TimeUnit.SECONDS)
                .zipWith(Observable.interval(1,TimeUnit.SECONDS), (aLong, integer) -> aLong)
                .subscribe();

它们工作正常,但1号中断了通话链。并且第二个“间隔”将在订阅时开始,因此“ 1、2、3”将在5秒后合并在一起。

2。如何控制事件流以保持等待条件。当条件正常时,事件流继续进行。 现在,我使用平面图+间隔+超时来处理此场景,但我认为情况很紧急。

 Single.just("1")
            .flatMap(s -> Observable.interval(200,TimeUnit.MILLISECONDS)
                    .filter(al -> condition())
                    .firstOrError()
                    .timeout(10,TimeUnit.SECONDS)
                    .map(al -> s)
            )
            .subscribe(str -> {},throwable -> {});

你能帮我个忙吗?还有什么地方可以研究一些有用的Rxjava2?

0 个答案:

没有答案