可观察的惰性随机生成器

tse*_*tse 2 rx-java reactivex

我需要将随机生成器编写为可观察的。Observer 会用下一个值长时间做一些事情。所以我想只在观察者需要时才发出新的随机数,或者可能有两个额外的数字,但不能更多。

怎么做?

PS 如果重要的话,我使用 Java。

aka*_*okd 5

只要消费者有需求,您就可以使用fromCallablewithrepeat来获取新值。

例如:

Random random = new Random();
Observable.fromCallable(() -> random.nextDouble())
.repeat()
.map(rnd -> {
    // do something with the random number
    return rnd * 2;
}
.take(50)
.subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)