现在我正在实施一些轮询逻辑与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