Сейчас я реализую некоторую логику опроса с помощью 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