我有这个问题,我一直在寻找,但找不到解决方案(或者我不能根据其他答案做出解决方案)。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 –