RxJava flatMapIterable与单

我试图整理一下我的代码, Single对于我来说是一个不错的select,因为我正在做一些只会发出一个结果的东西。

我有一个问题,因为我以前使用flatMapIterable采取我的回应(一个列表),并在每个项目上做一些事情。 我没有看到我怎么能用Single实现这个。

 getListOfItems() .flatMapIterable(items -> items) .flatMap(item -> doSomethingWithItem()) .toList() 

这工作得很好,如果getListOfItems返回一个Observable但如果我试着让它返回一个Single ,那么我不能做flatMapIterable ,不能看到替代,任何想法?

  • RxJava2表单validation
  • RxJavaPlugins错误没有find类“com.google.devtools.build.android.desugar.runtime.ThrowableExtension”
  • Observable.combine在kotlin中的最新types推断
  • 通过改造和rxjava 2.x处理空响应
  • RxJava 2可取消和一次性有什么区别?
  • RxJava 2.x:我应该使用Flowable还是Single / Completable?
  • RxJava和Kotlin的花括号和正常括号有什么区别?
  • 用改造和rxjava 2.x处理空的响应
  • flattenAsObservable应该这样做,它会将Single success值映射到Iterable (list),并将每个列表项作为Observable

      getListOfItems() .flattenAsObservable(new Function<Object, Iterable<?>>() { @Override public Iterable<?> apply(@NonNull Object o) throws Exception { return toItems(o); } }) .flatMap(item -> doSomethingWithItem()) .toList() 

    我做了这样的事情

     @Override public Single<List<String>> getAvailablePaths() { return mongoClient.rxFind("t_polygons", new JsonObject()) .toObservable() .flatMapIterable(list -> list) .map(json -> json.getString("path")) .filter(Objects::nonNull) .toList() .toSingle(); }