Android Rxjava2 多次有条件的网络请求

假设我们有这样一个需求,开始时通过传入的一个参数访问网络API,然后根据返回结果来再次进行请求,假设返回true 我们就不进行访问了转而做其他操作,如果为false 则我们必须传入另外一个参数再次进行访问网络操作,如果返回的参数假设为true 我们就不再进行访问转而做其他操作,如果为false 则我们重复上述操作,直到所有的参数都尝试完毕,如果全部参数都传完后,服务器返回结果还是为false,则我们就取消操作。
请问如何组合Rxjava2中的操作符来实现上述需求,我尝试过利用map 和flatMap来实现该功能,但是由于返回true和返回false的操作不同,我无法根据不同返回结果返回不同Observable。网络请求用的是retrofit

阅读 6.5k
2 个回答

使用fliter+switchIsEmpty+flitermap就可以了

难道不是用递归会更好些,未必非要局限在用单一Observable和操作符一次完成进行吧。结合RxJava,异步请求访问结束后更具结果来进行判断并带参数进行方法递归再次进行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏