Я хотел попробовать RxJava с kotlin, чтобы упростить кодирование, поэтому я сделал это:
fun postAnswers() {
disposable = getToken.execute().subscribe({ token ->
questions.forEach { form ->
val answers = form.answers?.filter { it.isChecked }?.map { it.answer_id }
disposable = postAnswer.execute(token?.token!!, SavedAnswer(form.form_id, answers)).subscribe({
//Post live data about success
}, {
//Post live data failure
})
}
}, {
//Post live data failure
})
}
Но у меня такое впечатление, что можно сделать лучше, но я не знаю как. В основном, чего я пытаюсь добиться, это получить объект Token из базы данных, который возвращает Flowable Token? а затем использовать его для вызова postAnswer в цикле for, потому что мне нужно публиковать каждый ответ отдельно (так устроен API). После этого postAnswer возвращает только Completable, но мне нужно сообщить Activity (это из кода ViewModel), сколько ответов было опубликовано
Я думал об использовании функций .flatMap или .concat, но я не уверен, будет ли это полезно в этом случае. Кроме того, нужно ли назначать getToken.execute() одноразовому?
Спасибо за ответ
РЕДАКТИРОВАТЬ:
Вот мой список вопросов:
private var questions: List<Form> = emptyList()
Он заполняется функциями viewModel.
questions
объект? Скопируйте сюда свой класс или, по крайней мере, все используемые здесь объекты, чтобы предоставить дополнительную информацию, чтобы помочь вам. - person DawidJ   schedule 06.01.2019