У меня есть:
List<T>
fun1: T -> U
fun2: U -> void
funList: List<T> -> void
Я хочу применить одновременно (с rxjava2) к каждой функции элемента fun1
, а затем fun2
к результату первого.fun2
возвращает void, поэтому я хочу получить просто Completable, который завершается, когда все элементы преобразуются этими двумя функциями.
Одна сложность, которая выше моих навыков rx-java: если все результаты fun1
Я хочу запустить funList
для всего списка элементов U (List<U>
).Выполнение funList
должно выполняться одновременно с выполнением fun2
.Я не хочу ждать с выполнением fun2
для всех результатов fun1
.И результат Completable должен завершиться после всех выполнений fun2
и funList
(1 исключение).
Пример для списка из 2 элементов [T1,T2]
: fun1
преобразует T1
в U1
, и сразу вызывается fun2
.Через некоторое время fun1
преобразует T2
в U2
, и fun2
вызывается с U2
и одновременно funList
с [U1, U2]
, поскольку все элементы U готовы к funList
.funList
заканчивается и после выполнения fun2
для U1
, а для U2
Завершение завершено.
Есть идеи, пожалуйста?