简体   繁体   English

RxJava Kotlin如何从单个可观察对象中获取分离的对象<String>

[英]RxJava Kotlin how to get separated objects from single observable<String>

RxJava Kotlin flatmap don't return separated objects from splitted string. RxJava Kotlin平面图不会从分割的字符串中返回分离的对象。 instead it returns List 而是返回列表

val source: Observable<String> = Observable.just("521934/2342/FOXTROT")
.flatMap{Observable.fromArray(it.split("/"))}
.subscribe{Log.d(TAG, "$it")}

It returns list: 返回列表:

[521934, 2342, FOXTROT]

But book ( Thomas Nield : Learning RxJava / 2017 / Page 114 ) says it has to return separated strings 但是本书( Thomas Nield:Learning RxJava / 2017 /第114页 )说它必须返回分离的字符串

521934
2342
FOXTROT   

example from book 书中的例子

http://reactivex.io/documentation/operators/flatmap.html says that it returns Single object. http://reactivex.io/documentation/operators/flatmap.html表示它返回单个对象。 In my case I got Single List object. 就我而言,我得到了“单一列表”对象。 So, documentation says true. 所以,文档说的是真的。 But I want to get result as in book example! 但是我想得到像书中的例子那样的结果!

How I can split the list and get separated objects? 如何拆分列表并获取分离的对象?

Make use of flatMapIterable , so you can get a stream of the items from the list: 利用flatMapIterable ,因此您可以从列表中获得一系列的项目:

Observable.just("521934/2342/FOXTROT")
            .flatMap { input -> Observable.fromArray(input.split("/")) }
            .flatMapIterable { items -> items }
            .subscribe { item -> Log.d(TAG, item) }

Just use fromIterable : 只需使用fromIterable

Observable.just("521934/2342/FOXTROT")
                .flatMap { Observable.fromIterable(it.split("/")) }
                .subscribe{
                    Log.d(TAG, "$it")
                }

In case of array you would have to use a spread operator additionaly since fromArray takes a vararg argument list: 在数组的情况下,由于fromArray需要一个vararg参数列表,因此您将不得不使用扩展运算符:

Observable.fromArray(*arrayOf("521934","2342","FOXTROT"))

如何转换 Observable<object> 单身<object>在 RxJava 中<div id="text_translate"><p>我是 RxJava 的新手,在这里我试图通过使用flatMap在列表中运行一些测试用例来返回 Single object of Object class 。 我正在尝试从Observable返回Single Object,如下所述:</p><pre> private fun isTrusted(configs: List<Configurations>): Single<Configurations> { return Observable.fromIterable(configs).flatMapSingle { val rate = it.rate?.profit val result = rate?.toMap()?.let { it1 -> tests.testRules(it1) } if (result == true.toString()) logd("---- rules: $result") res.toSingle() }.toList().map { list -> list.forEach { it-> if (list.contains(MATCH_UNKNOWN)) { test.isRulesUnknown = true } } } }</pre><p> 如果我做错了什么,请帮助我。</p></div></object></object> - How to convert Observable<Object> to Single <Object> in RxJava

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何从 rxjava 中的 Single Observable 获取值? - How to get the value from Single Observable in rxjava? 如何在RxJava中取消订阅Single Observable - How to unsubscribe Single Observable in RxJava RxJava - 如何从嵌套方法获取Single - RxJava - How to get Single from nested method 如何从RxJava中的Single获得收益 - How to get return from Single in RxJava 如何转换 Observable<object> 单身<object>在 RxJava 中<div id="text_translate"><p>我是 RxJava 的新手,在这里我试图通过使用flatMap在列表中运行一些测试用例来返回 Single object of Object class 。 我正在尝试从Observable返回Single Object,如下所述:</p><pre> private fun isTrusted(configs: List<Configurations>): Single<Configurations> { return Observable.fromIterable(configs).flatMapSingle { val rate = it.rate?.profit val result = rate?.toMap()?.let { it1 -> tests.testRules(it1) } if (result == true.toString()) logd("---- rules: $result") res.toSingle() }.toList().map { list -> list.forEach { it-> if (list.contains(MATCH_UNKNOWN)) { test.isRulesUnknown = true } } } }</pre><p> 如果我做错了什么,请帮助我。</p></div></object></object> - How to convert Observable<Object> to Single <Object> in RxJava 从 Kotlin 对象列表中获取单个对象 - Get single object from Kotlin list of objects 使用rxjava时,无法从可观察对象获取字符串值,而将其放入另一个可观察对象 - Can't get string vaules from an observable to put in another observable when using rxjava 从Rxjava中的Observable获取列表的最佳方法 - Best way to get List from Observable in Rxjava 从 Observable 中获取对象值(RxJava、Retrofit) - Get object value from Observable (RxJava, Retrofit) 如何在 RxJava 2 和 Kotlin 中将 null 传递给可空类型的 Observable - How to pass null to an Observable with nullable type in RxJava 2 and Kotlin
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM