在展平之前在RxJava中设置一个variables
Observable 从调用getSomething()返回。 Foo有一个列表,基本上是我想要的数据。 我需要过滤清单,所以我把它弄平了。 不过,我需要从Foo的另一个数据在subscribe.onNext()中设置一个variables。 我想要设置的variables是kotlin类的一个默认setter的成员。 我确实试图从地图返回@地图,但这似乎阻止了排放,使得filter无法使用。 我确实在其他线程中查看了Pair和Observable嵌套,但还没有发现它有帮助。 我也看了flatMapIterable的第二个重载的版本与一个Func2,但没有得到它吐出限制。 在这种情况下,我如何正确应用上面的任何一个,或者是否有另一个更简单的解决方案?
service.getSomething() .subscribeOn(Schedulers.io()) ---> here I need to set limit = Foo.data.limit .flatMapIterable { t -> t.data.results } .filter({ s -> filterLogic(s) }) .toList() .observeOn(AndroidSchedulers.mainThread()) .subscribe( { c -> //this is the list, not Foo
您不需要使用Rx将列表弄平,然后对其进行过滤。 您可以使用Kotlin的List.filter函数。 你最终的代码可以看起来像这样:
service.getSomething() .subscribeOn(Schedulers.io()) .map { Pair(Foo.data.results.filter(this::filterLogic), Foo.data.limit) } .observeOn(AndroidSchedulers.mainThread()) .subscribe { (filteredResults, limit) -> }
- 当我退出应用程序时,为什么在Android应用程序中使用Kotlin / rxJava编写android.os.TransactionTooLargeException? (的OnExit /的onPause)?
- 订阅多个视图到一个视图onclick和可见性改变RxAndroid
- Android库不能编译kotlin
- 我可以创建一个将rxJava订阅添加到CompositeSubscription的Kotlin扩展方法吗?
- 将RxJava代码正确转换为Kotlin
- Retrofit2和kotlin
- 使用RxJava + Kotlin解析数据时出错
- 致命例外:当触发器处置时,RxCachedThreadScheduler-1。 为什么?
- Kotlin泛型方法和继承