Tout d'abord, pour les demandes de réseau est préférable d'utiliser Single
puis Observable
, bec ause il y aura toujours un seul article. Pour passer d'une requête à l'autre, vous pouvez utiliser flatMap
.
Si l'on suppose que votre code est similaire, vous pouvez essayer:
class Dto1 {}
class Dto2 {}
class Dto3 {}
public interface Api {
Single<Dto1> getDto1();
Single<Dto2> getDto2();
Single<Dto3> getDto3();
}
private Api api;
public void callApi() {
api.getDto1()
.doOnSuccess(dto1 -> {/*do something with dto1*/})
.flatMap(dto1 -> api.getDto2())
.doOnSuccess(dto2 -> {/*do something with dto2*/})
.flatMap(dto2 -> api.getDto3())
.doOnSuccess(dto3 -> {/*do something with dto3*/})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe()
}
vous pouvez utiliser l'opérateur concat qui prend plusieurs Observables et concaténer leurs séquences – Payal
Merci, Cette solution est utile pour moi. –