Начните одно наблюдаемое за другим внутри цикла - PullRequest
0 голосов
/ 03 июня 2019

Мне нужно выполнить следующее:

  1. Вызвать бэкэнд-API, который возвращает целое число.
  2. Как только этот вызов завершится, вызовите бэкэнд, чтобы получить списокПредметы.Поскольку бэкэнд может возвращать большой набор, возвращается только 50 элементов, и необходимо выполнить несколько вызовов для получения следующих пакетов из 50.
  3. Когда пакет элементов получен, он должен уведомить пользовательский интерфейс.Пакеты обрабатываются как единое целое (это просто какой-то список).Пакетные элементы не выводятся по потоку индивидуально.

Было бы неплохо, если бы я мог создать один поток Rx, который обрабатывает все это.Первый вызов API для получения целого числа не связан с другим вызовом API, который получает элементы, хотя я должен получить целочисленное значение, прежде чем продолжить вызов для получения элементов.

Все вызовы API выполняются с использованием Retrofit.

Одна из проблем, с которыми я сталкиваюсь - это циклы.После завершения вызова для получения предметов я предполагаю, что должен избавиться от наблюдаемого и затем вернуться к началу.Но где именно начало в этом потоке.Вызов для получения целого числа выполняется только один раз, в то время как вызов для получения элементов повторяется до тех пор, пока все элементы не будут возвращены.Я знаю, что все предметы были возвращены, когда было возвращено менее 50.

Есть предложения о том, как это сделать?

...