今、私はRxJavaでポーリングロジックを実装しています。私は停止するように指示されるまで、エンドポイントを何度もポーリングすることになっています。さらに、それぞれの応答は、私が再びポーリングする前に遅延するはずの時間とともに戻ってきます。私の論理は今、この権利のようになります。repeatWhen()の動的遅延値
service.pollEndpoint()
.repeatWhen(observable -> observable.delay(5000, TimeUnit.MILLISECONDS))
.takeUntil(Blah::shouldStopPolling);
今私は、遅延値が5000にハードコード持っているが、私はそれがポーリング応答の値に依存したいと思います。私はObservable.just(pollResponse).repeatWhen(observable -> observable.delay(pollResponse.getDelay(), TimeUnit.MILLISECONDS))
を返すフラットマップを使ってみましたが、ソースObservableを混乱させてしまったので、それは正しいアイデアのようには見えませんでした。私はそれが私が見落としている単純なもののように感じる。ありがとう!
は、理想的には私がしたいです副作用はありません。 :/ –
私は、あなた自身のリピートスタイルの演算子を書くことができていることがわかります。 – JohnWowUs