RxJava delay for each item of list emitted

后端 未结 15 1804
感情败类
感情败类 2020-11-29 00:14

I\'m struggling to implement something I assumed would be fairly simple in Rx.

I have a list of items, and I want to have each item emitted with a delay.

It

15条回答
  •  旧巷少年郎
    2020-11-29 00:43

    To delay each group you can change your flatMap() to return an Observable that delays emitting the group.

    Observable
            .range(1, 5)
            .groupBy(n -> n % 5)
            .flatMap(g ->
                    Observable
                            .timer(50, TimeUnit.MILLISECONDS)
                            .flatMap(t -> g.toList())
            )
            .doOnNext(item -> {
                System.out.println(System.currentTimeMillis() - timeNow);
                System.out.println(item);
                System.out.println(" ");
            }).toList().toBlocking().first();
    

提交回复
热议问题