Использование RxJava для извлечения объекта, преобразования содержащего списка и использования списка
проблема высокого уровня, которую я пытаюсь решить, - это преобразование списка Foo объекты, содержащиеся в извлеченном FooContainer (наблюдаемый) в список FooBar объекты, использующие RxJava.
моя (запутанная) попытка:
fooContainerObservable
.map(container -> container.getFooList())
.flatMap(foo -> transformFooToFooBar(foo))
.collect( /* What do I do here? Is collect the correct thing? Should I be using lift? */)
.subscribe(fooBarList -> /* Display the list */);
мое замешательство (или, по крайней мере, одна его точка) - это шаг, перемещающий сплющенный список обратно в список.
примечание: Я пытаюсь сделать это в приложении для Android.
1 ответов
toList может собирать все элементы наблюдаемого в List и излучать его. toList может быть реализован с помощью collect, но это намного проще, чем collect. Для вашего примера это будет:
fooContainerObservable
.map(container -> container.getFooList())
.flatMap(foo -> transformFooToFooBar(foo))
.toList()
.subscribe(fooBarList -> /* Display the list */);