使用RxJava发送多个请求

在Android中使用RxJava和Retrofit是非常新的。 我已经成功编写了API调用并开发了接口。 现在,我想以可以发送两个请求的方式编写我的代码:第二个请求取决于第一个请求的值。 有人可以指导我,如果这是可能的? 如果是的话那怎么样? 任何代码片段真的会有所帮助。

例如:以下是两个请求:

mCompositeDisposable.add(fcService.getStationList() .subscribeOn(Schedulers.io()) // "work" on io thread .observeOn(AndroidSchedulers.mainThread()) // "listen" on UIThread .subscribe(this::handleResults, this::handleError) ); mCompositeDisposable.add(fcService.getStationSensor("12345678") .subscribeOn(Schedulers.io()) // "work" on io thread .observeOn(AndroidSchedulers.mainThread()) // "listen" on UIThread .subscribe(this::handleResults, this::handleError) ); 

第二个请求可能来自第一个请求的响应值。 是否有可能合并这两个请求的方式,我只写一次代码的方式?

使用flatMap操作符,您可以检查第一个调用的响应,并选择下一个要执行的操作,这样您就可以构建一个可以订阅的新Observable(下一个“代码”是kotlin样式):

 Single newSingle = fcService.getStationList().flatMap{ stationList -> when(stationList){ "OK_value" -> fcService.getStationSensor(stationList) else -> Single.error(RuntimeException("Error response")) } }