From c5d6dfc5c6e811ba8b03702339417dedf630f0dd Mon Sep 17 00:00:00 2001 From: Elijah Verdoorn Date: Wed, 18 Sep 2019 12:16:53 -0700 Subject: [PATCH] Add sample of Observable interoperability --- .../interop/observable/ObservableInterop.kt | 18 ++++++++++++++++++ .../observable/TestObservableInterop.kt | 9 +++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/main/kotlin/interop/observable/ObservableInterop.kt create mode 100644 src/main/kotlin/interop/observable/TestObservableInterop.kt diff --git a/src/main/kotlin/interop/observable/ObservableInterop.kt b/src/main/kotlin/interop/observable/ObservableInterop.kt new file mode 100644 index 0000000..7370100 --- /dev/null +++ b/src/main/kotlin/interop/observable/ObservableInterop.kt @@ -0,0 +1,18 @@ +package interop.observable + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.rx2.rxObservable +import kotlin.coroutines.CoroutineContext + +class ObservableInterop( + override val coroutineContext: CoroutineContext = Dispatchers.Default +): CoroutineScope { + fun getStream() = CoroutineScope(coroutineContext).rxObservable { + (1..10).map { + delay(100) + send(it) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/interop/observable/TestObservableInterop.kt b/src/main/kotlin/interop/observable/TestObservableInterop.kt new file mode 100644 index 0000000..2e0d10f --- /dev/null +++ b/src/main/kotlin/interop/observable/TestObservableInterop.kt @@ -0,0 +1,9 @@ +package interop.observable + +fun main() { + println("Creating ObservableInterop") + val observableInterop = ObservableInterop() + observableInterop.getStream().subscribe(::println, ::println) + + Thread.sleep(2000) +} \ No newline at end of file