저는 RxJava를 처음 사용합니다. 그래서 저는 여전히 그 문제를 해결하려고합니다. 나는 버튼 클릭의 흐름을 나타내는 Observable
을 가지고있다. 그래서 그것은 뜨겁다. 버튼을 클릭 할 때마다 I/O를하고 싶습니다. 실패하면 반복 할 때까지 I/O를 다시 시도하려고합니다. 이것은 retry()
또는 repeat()
을 사용할 수있는 좋은 기회 인 것 같습니다.하지만 이는 열악한 관측소에서만 작동하며 추운 곳에서는 작동하지 않습니다. 여기 이벤트 스트림을 실행하는 작업을 반복하는 적절한 방법
flatMap
를 사용하여 생각했습니다
buttonRequests
.map(actionEvent -> doIO())
.repeatAboveIfFailedUntilIOSucceeds()
.subscribe(...);
을하고 성공하면 나머지 사람을 무시 skip
를 사용하는 것보다,하지만 깨끗하게 내게 불확실한 시도를하지는 않을 것입니다.
이것에 대해 올바른 생각은 무엇입니까?
더 많은 예제를 볼 수 있습니다 성공할 때까지, 각 버튼 클릭에 대한 실패한 작업을 반복 하시겠습니까? 다시 시도하고 새로운 flighes 경우 어떻게해야합니까? –
예, 성공할 때까지 각 버튼 클릭에 대한 작업을 다시 시도합니다. 그 동안 버튼이 다시 클릭되지 않도록 버튼을 비활성화 할 것입니다. – Vultan