我是RxJava的新手,所以我仍然試圖讓自己的頭靠近它。我有一個Observable
代表一串按鈕點擊,所以它很熱。每次點擊該按鈕時,我都想做一些I/O。如果失敗,我想重複並嘗試再次執行該I/O,直到成功。這似乎是一個使用retry()
或repeat()
的好機會,但那些只能用於熱門的可觀察對象,而不是冷的。正確的方式來重複發射事件流的操作
下面是一些僞代碼來獲得在我想要做的事:
buttonRequests
.map(actionEvent -> doIO())
.repeatAboveIfFailedUntilIOSucceeds()
.subscribe(...);
我使用flatMap
複製的事件考慮,也比使用skip
忽略其餘的,如果它成功了,但不會乾淨地給我一個不確定的嘗試次數。
什麼是正確的方式來思考這個問題?
更多的例子你想重複一個失敗的動作爲每個按鈕點擊,直到成功?如果它正在重試並且新的遊戲會發生什麼? –
是的,我會重試每個按鈕單擊操作,直到它成功。我會禁用該按鈕,以防止它在繼續時被重新點擊。 – Vultan