- Reactive Programming in Kotlin
- Rivu Chakraborty
- 183字
- 2021-07-02 22:26:41
Understanding the toObservable extension function
Thanks to the extension functions of Kotlin, you can turn any Iterable instance, such as List, to Observable without much effort; we have already used this method in Chapter 1, A Short Introduction to Reactive Programming, however, take a look at this:
fun main(args: Array<String>) { val observer: Observer<String> = object : Observer<String> { override fun onComplete() { println("All Completed") } override fun onNext(item: String) { println("Next $item") } override fun onError(e: Throwable) { println("Error Occured ${e.message}") } override fun onSubscribe(d: Disposable) { println("New Subscription ") } }//Create Observer val list:List<String> = listOf
("String 1","String 2","String 3","String 4") val observable:Observable<String> = list.toObservable() observable.subscribe(observer) }
And the following is the output:

So, aren't you curious to look into the toObservable method? Let's do it. You can find this method inside the observable.kt file provided with the RxKotlin package:
fun <T : Any> Iterator<T>.toObservable(): Observable<T> =
toIterable().toObservable() fun <T : Any> Iterable<T>.toObservable(): Observable<T> =
Observable.fromIterable(this) fun <T : Any> Sequence<T>.toObservable(): Observable<T> =
asIterable().toObservable() fun <T : Any> Iterable<Observable<out T>>.merge(): Observable<T> =
Observable.merge(this.toObservable()) fun <T : Any> Iterable<Observable<out T>>.mergeDelayError():
Observable<T> = Observable.mergeDelayError(this.toObservable())
So, it basically uses the Observable.from method internally; thanks again to extension functions of Kotlin.
推薦閱讀
- 數據存儲架構與技術
- 計算機組成原理與接口技術:基于MIPS架構實驗教程(第2版)
- Python數據分析入門:從數據獲取到可視化
- Python金融大數據分析(第2版)
- 數據庫程序員面試筆試真題庫
- Oracle PL/SQL實例精解(原書第5版)
- 大數據技術入門
- 深入淺出 Hyperscan:高性能正則表達式算法原理與設計
- Apache Kylin權威指南
- INSTANT Android Fragmentation Management How-to
- 數據科學實戰指南
- 爬蟲實戰:從數據到產品
- 大數據技術原理與應用:概念、存儲、處理、分析與應用
- 大數據與機器學習:實踐方法與行業案例
- R Machine Learning Essentials