9

我试图解决的高级问题是使用 RxJava将Foo包含在获取FooContainer(Observable)中的对象列表转换为对象列表。FooBar

我的(困惑的)尝试:

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 应用程序中执行此操作。

4

1 回答 1

17

toList可以将 Observable 的所有项目收集到 a 中List并发出。toList可以使用 来实现collect,但比 . 容易得多collect。对于您的示例,它将是:

fooContainerObservable
  .map(container -> container.getFooList())
  .flatMap(foo -> transformFooToFooBar(foo))
  .toList()
  .subscribe(fooBarList -> /* Display the list */);
于 2014-12-10T01:27:14.587 回答