In order to test my reactive program with rxscala, I need to construct such an Observable
:
val numberStream: Observable[Int] = Observable.???()
which
- publishes number
1
- then waits for
1s
- publishes number
4
- then waits for
3s
- publishes number
2
- then waits for
2s
I have a ugly solution, with Thread
and ReplaySubject
:
val subject: Subject[Int] = ReplaySubject()
val numberStream: Observable = subject
new Thread(new Runnable {
def run = {
subject.onNext(1)
Thread.sleep(1000)
subject.onNext(4)
Thread.sleep(3000)
subject.onNext(2)
Thread.sleep(2000)
}
}).start()
Is there any better solution?