Я смущен параметром prefetch
из concatMap
, который в основном звучит как MAX_CONCURRENCY
.
prefetch: количество элементов для предварительной выборки из текущей наблюдаемой
Q1 : Означает ли это, что нужно предварительно выбрать элементы из Observable
для отображения, а затем подписать по одному по порядку?
например, документы для concatMapSingle
довольно ясны:
Отображает вышестоящие элементы в SingleSources и подписывается на них один
после того, как другой преуспевает, испускает их значения успеха или завершается
немедленно, если это либо наблюдаемая, либо текущая внутренняя
Сбой SingleSource.
Q2 : Правда ли, что документ для concatMap
может быть переписан как:
Отображает вышестоящие элементы в ObservableSources и подписывается на них.
один за другим завершается?
Оригинальная версия документа для concatMap
:
Возвращает новый Observable, который испускает предметы, полученные в результате применения
функция, которую вы предоставляете для каждого элемента, испускаемого источником
ObservableSource, где эта функция возвращает ObservableSource, и
затем испускать предметы, которые в результате объединения тех, в результате
ObservableSources.
Т.е. следующие строки в основном одинаковы (в терминах MAX_CONCURRENCY
)?
int MAX_CONCURRENCY = 1;
Observable.just(1, 2, 3).flatMap(num -> Observable.just(num), false, MAX_CONCURRENCY);
Observable.just(1, 2, 3).concatMap(num -> Observable.just(num));