У меня есть список массивов API
allSignsList = ArrayList()
allSignsList.add(AllSignsList( "Overview", "overview.aspx"))
allSignsList.add(AllSignsList( "Details", "details.aspx"))
allSignsList.add(AllSignsList( "Description", "description.aspx"))
allSignsList.add(AllSignsList( "profile", "profile.aspx"))
Я делаю запрос, используя цикл for в массиве allSignList, поскольку формат ответа во всех API одинаков.Но главная проблема, с которой я сталкиваюсь - это результат не в последовательном порядке.Я хочу дождаться завершения запроса, прежде чем вызывать другой API.
Я делаю сетевой вызов следующим образом:
try {
mApiServiceNetwork.getNetworkServiceForXml(getNewXmlBaseUrl())
.getXmlTest(path)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Subscriber<RSSFeedItems>() {
override fun onCompleted() {
//Do nothing for now
}
override fun onError(e: Throwable) {
Log.e(TAG, "onError " + Log.getStackTraceString(e))
apiResult.onAPIFail()
}
override fun onNext(rssFeed: RSSFeedItems) {
Log.e(TAG+" Weekly", (MainActivity.weeklyCount++).toString() + " Operation performed successfully")
apiResult.onModel(rssFeed)
}
})
} catch (e: Exception) {
Log.e(TAG, "Exception" + Log.getStackTraceString(e))
apiResult.onError(e)
}