У меня есть ArrayList строк. Для каждой строки я хочу вызвать API с Retrofit2. И ответ каждого API дает некоторые данные, которые я хочу использовать, и оттуда я хочу вызвать другой API. Наконец, он вернет строку независимо от того, успешен он или нет. Я могу добиться этого, но хочу, чтобы все API вызывались один за другим, как синхронный.
Вот мой код выглядит.
for (int i = 0; i < domainList.size(); i++) {
feedData3(domainList.get(i));
}
private void feedData3(String domain) {
Domain domain1 = new Domain();
streamFetch(domain)
.concatMap((Function<Contact, ObservableSource<?>>) contact -> {
domain1.setDomainData(contact.getDATA());
domain1.setDomain(domain);
return streamFetchData(domain1.getDomain(), domain1.getDomainData());
})
.subscribe(new Observer<Object>() {
@Override
public void onSubscribe(Disposable d) {
disposable = d;
}
@Override
public void onNext(Object o) {
Log.e(TAG, domain + ",Success");
}
@Override
public void onError(Throwable e) {
Log.e(TAG, domain + ",failure = " + e.getLocalizedMessage());
}
@Override
public void onComplete() {
}
});
}
public Observable<Contact> streamFetch(String domain) {
//GET API CALL
}
public Observable<String> streamFetchData(String domainName, String domainData) {
//POST API CALL
}