不熟悉RxJava
。试图实现一些琐碎的事情,但是RxJava
到目前为止,似乎还无法绕过整个范式。我想要做的就是一个接一个地进行两个服务调用,然后简单地返回一个POJO
包含两个调用响应的最终定制。这里要注意的是,这两个调用是相互独立的。仅当第一个电话成功返回时,第二个电话才应触发。第二个不使用第一个服务调用中的任何数据。到目前为止,我有什么。
RestWebClient.get().getFirstImage()
.flatMap(firstImage -> RestWebClient.get().getSecondImage())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(firstImage -> mainFragmentPresenterInterface.showImages(firstImage));
我不确定如何链接两个单独的网络调用的响应,并将它们作为单个POJO返回给演示者。
另外,如何确保只有在getFirstImage()成功的情况下才能调用getSecondImage()?
谢谢。
您开始正确,我将对您的代码段进行一些修改:
RestWebClient.get().getFirstImage()
.flatMap(firstImage -> /* first image success */ ? RestWebClient.get().getSecondImage() : Observable.just(null),
(firstImage, secondImage) -> Pair.create(firstImage, secondImage))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(imagePair -> mainFragmentPresenterInterface.showImages(imagePair));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句