kotlinのメモです。
970 views
import io.reactivex.Flowable
fun main(args:Array<String>) {
var flow = Flowable.just(1,2,3)
flow.subscribe{
println(it)
}
Thread.sleep(1*1000)
}
import io.reactivex.*
import io.reactivex.schedulers.Schedulers
import org.reactivestreams.Subscriber
import org.reactivestreams.Subscription
//FlowableOnSubscribeは購読時にフロー可能(データ提供可能)という意味。
class MyFlow: FlowableOnSubscribe<String> {
override fun subscribe(emitter: FlowableEmitter<String>) {
//データ発射
for(i in 0..100){
emitter.onNext(i.toString())
}
//終わり
emitter.onComplete()
}
}
//データを購読する人
class MySubScriber<String>: Subscriber<String> {
var subscription:Subscription? = null
override fun onComplete() {
println("終わりました")
}
override fun onSubscribe(s: Subscription?) {
//一個だけデータください
subscription = s
subscription?.request(1)
println("購読準備完了")
}
override fun onNext(t: String) {
println("受信しました ${t}")
subscription?.request(1)
}
override fun onError(t: Throwable?) {
println("エラーが発生しました")
}
fun dispose() {
subscription?.cancel()
}
}
fun main(args:Array<String>) {
//データ作成者のインスタンス生成
var myFlow = MyFlow()
//購読者のインスタンス生成
var mySubscriber = MySubScriber<String>()
//データ作成マシンを作成(myFlowはデータを作るパイロット、flowはパイロット搭載のデータ作成マシン)
var flow = Flowable.create<String>(myFlow, BackpressureStrategy.BUFFER)
//監視開始
flow.observeOn(Schedulers.computation()) //別スレッドでmySubscriberを実行する
.subscribe(mySubscriber) //購読する人を登録する
Thread.sleep(1*1000)
}
Page 22 of 36.
マッスル
本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。
https://www.osumoi-stdio.com/pyarticle/