私はランダムジェネレータを観測可能なように書く必要があります。オブザーバーは次の価値を持って何かを長時間するでしょう。だから私はオブザーバーがそれを望んでいるときだけ新しい乱数を出したいと思います。観測可能なレイジーランダムジェネレータ
どうすればよいですか?
P.S.それが問題なら、私はJavaを使います。
私はランダムジェネレータを観測可能なように書く必要があります。オブザーバーは次の価値を持って何かを長時間するでしょう。だから私はオブザーバーがそれを望んでいるときだけ新しい乱数を出したいと思います。観測可能なレイジーランダムジェネレータ
どうすればよいですか?
P.S.それが問題なら、私はJavaを使います。
fromCallable
とrepeat
を使用して、消費者からの需要がある場合は常に新しい値を得ることができます。例えば
:
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);
利用あまり知られてSyncOnSubscribe
:
Observable
.create(SyncOnSubscribe.createStateless(observer -> observer.onNext(random.nextDouble))
.map(...)
.take(...)
.subscribe(...)
これは、背圧で正しく動作します。