2017-11-20 2 views
0

Observableという時間間隔があり、1秒ごとにLong項目を放出するとします。どのように現在の排出数に関連してその期間を拡大するのですか?RxJavaより長い時間間隔の期間が現在の放射回数に依存する

たとえば、最初の4回の排出については1秒ごとに項目を放出する必要がありますが、その後は3秒ごとに項目を放出する必要がありますか?

これは可能ですか?

答えて

0

排出量に応じて遅延間隔を設定するには、switchMap()演算子を使用します。 switchMap()は、その遅延unitsの遅延を計算するために、発光番号が付与された機能、emissionDelay()、によって設定される新たな観察を作成しながら

observable 
    .zipWith(Observable.range(20_000), new Pair<>(item, itemNumber)) 
    .switchMap(pair -> Observable.just(pair.getFirst()) 
         .delay(emissionDelay(pair.getSecond()), units) 
    ... 

zipWith()オペレータは、その発光番号と対になった項目を生成します。

関連する問題