在展平之前在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) -> }
- MissingMethodInvocationException在Kotlin中测试已打开的类
- Kotlin:如何从RxJava订阅者继承
- 如何有条件地在RxJava流中添加一个异步操作?
- 如何将自定义pojo作为参数传递给rxjava2 Observable中的接口方法调用?
- Kotlin:如何将使用Thread.sleep的测试转换为RxJava TestScheduler
- 如何用RxAndroid压缩Kotlin语言中的几个观察值
- 合并来自不同Observable的数据,并根据数据可用性选择不同的获取策略
- 使用Retrofit2 + RxJava + Jackson重试202状态码
- 当有变化时,RxJava2可观察的不在onNext上进行处理