标签:Observable ObservableSource pprintln subscribe 创造 操作符 io Rxjava toString
rxjava 操作符kotlin 语法练习
参考 :https://github.com/ReactiveX/RxJava/
依赖
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.2.9'
经常会使用的固定式语句
1、异步订阅观察者 (切换到子线程)
.subscribeOn(Schedulers.io())
2、排放到主线程执行
.observeOn(AndroidSchedulers.mainThread())
3、订阅一个可被观察资源
.subscribe()
Observable的创建操作符
1、create 创建新的Observable实例
Observable.create<Any> {
it.onNext("创建一个可被观察的对象")
}.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
println(it)
}
2、just 发出每个项目的可观察对象
Observable.just("1", "2", 5, 8, Any())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
println(it.toString())
}
3、dafer ObservableSource工厂函数 ,返回一个Observable,该Observable调用一个ObservableSource工厂来为每个新的Observer创建一个ObservableSource
Observable.defer(object : Callable<Observable<String>> {
override fun call(): Observable<String> {
return Observable.create { it.onNext("haodada") }
}
}).subscribe {
pprintln(it.toString())
}
4、fromArray 一个发出源数组中的每个项的可观察对象
Observable.fromArray("1", 5, 9, "5")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
println(it.toString())
}
5、fromFuture 将{ Future}转换为ObservableSource。
var task = FutureTask(Callable<String> {
"task ${Thread.currentThread().id}"
})
Observable.fromFuture(task)
.subscribe({ s: String? -> pprintln(" onNext : ${s}") },
{ o: Throwable? -> pprintln(" one rror : ${o}") },
{ pprintln(" onComplete!!") },
{ disposable: Disposable? ->
pprintln(" onSubscribe!!")
task.run()
})
6、fromIterable 将{ 集合}转换为ObservableSource。
var array = arrayListOf(1, 2, 2, 5, 6, 6, 9)
Observable.fromIterable(array)
.subscribe {
pprintln(it.toString())
}
7、range 它发出指定范围内的一系列整数
Observable.range(200,1000).subscribe {
pprintln(it.toString())
}
标签:Observable,ObservableSource,pprintln,subscribe,创造,操作符,io,Rxjava,toString 来源: https://blog.csdn.net/qq_32110517/article/details/118311871
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。