Retrofit으로 API를 호출하기 위해 Rx를 사용하고 있습니다. 어떤 시점에서 API를 호출하고 응답 1을 기다렸다가 응답을 기다리는 API를 다시 호출합니다. 응답 2를받은 후 Observable을 내보낼 수 있습니다. 내 문제는, 어떻게 해야할지 모르겠다. 2를 호출하고 응답 2를 보낸 후에 만 내 보냅니다.Emit Observable이 두 번째로 수신 된 후에 만 관찰 가능
다음은 Observable 모델을 방출해야하는 클래스의 함수입니다. 외부에서 get2 메소드가 보이지 않아도됩니다.
public Observable<Model> get1(String slug) {
return api1
.getInfo(slug)
.subscribeOn(Schedulers.io())
.map(resonse1 -> {
String metadata = response1.getMetadata();
//Make call2 with metadata
//call(2)
Model model = response1.getModel();
model.setInfo(/*Info from call2*/)
return model;
})
.observeOn(AndroidSchedulers.mainThread());
}
private Observable<Info> get2(String metadata) {
return api2.getInfo(new InfoAsset(metadata))
.subscribeOn(Schedulers.io())
.map(response2 -> {
return response2.getInfo;
})
.observeOn(AndroidSchedulers.mainThread());
}