我有這個問題,我一直在尋找,但找不到解決方案(或者我不能根據其他答案做出解決方案)。RxJava等待一個觀察者與訂閱者等待另一個觀察者與其他訂閱者
我的問題是,我需要找到一種方式來等待一個觀察者(用它自己的用戶)並等待另一個觀察者(用它自己的用戶)來完成。
這是情景:
OBS1 - > retryWith(tokenAuthenticator) - > SUBSCRIBER1 - >更新UI
OBS2 - >需要等待OBS1獲得新令牌 - > subscriber2用戶 - > 更新UI
我主要關心的是我需要兩個訂戶。我的觀點obs1和obs2並行運行,但需要檢查obs1是否用新會話標記結束。也許這不是RxJava的主要目的。
Obs1連接到HTTP連接並獲取帶有數據的Json以填充用戶界面,obs2也是如此,但用其他json和其他信息填充UI。
對我來說唯一的問題是我的會話令牌每5分鐘過期,當我嘗試獲取新的obs2時,已經使用過期的會話令牌進行呼叫。
簡單的解決方案是在onComplete()subscriber1中執行obs2,但我知道它必須是一個更好的解決方案,使用RxJava。
Rxjava爲您提供了各種可以幫助您的操作符,您可以嘗試使用這些操作符來處理例如。重試,重試,去抖等 –
如果問題只在令牌刷新,比你可以從okhttp客戶端嘗試本機'Authenticator'我描述了它在其他問題:http://stackoverflow.com/questions/40762911/call-another-retrofit -call-on-subject-emission/40771313#40771313 –