Выбор использования Observable.just или Single при обработке списков - PullRequest
0 голосов
/ 14 мая 2019

В моем приложении я получаю список элементов по 10 за раз, пока больше нет доступных элементов. Мне нужно обрабатывать каждый элемент последовательно. Если я правильно понимаю, это можно сделать с помощью Observable.just или Single в RxJava. Однако мне не ясно, какой из них выбрать или имеет значение.

Или я совершенно не прав и ни один из них не подходит?

1 Ответ

1 голос
/ 15 мая 2019

Если вы хотите выполнить операцию с каждым элементом списка, вам скорее всего понадобится Observable.A Single, как следует из его названия, предназначен для одного выброса.

Обратите внимание на следующее:

List<String> items = new ArrayList<>(10);
// lets say this array list is already populated

Observable.fromIterable(items)
        // the map operator handles each emission individually
        .map(String::length)
        .subscribe(System.out::println);

Если бы вместо этого мы использовали Single, это выглядело бы как:

Single.just(items)
        .toObservable()
        .flatMapIterable(strings -> strings)
        .map(String::length)
        .subscribe(System.out::println);

Здесь вы можете видеть, что у нас есть единичное излучение items, но для обработки каждой строки в списке нам необходимо преобразовать ее в наблюдаемую и плоскую карту в этом списке, поэтому мыполучить каждый элемент списка в отдельности.По сути, это всего лишь грубая версия использования Observable напрямую

Теперь, если мы расширим это до получения пакетов данных (в группах по 10), будут применяться те же принципы.Это зависит от того, как вы извлекаете эти пакеты, чтобы точно сказать, каким образом это может привести к созданию Observable.

...