Advertisement
Guest User

Untitled

a guest
Apr 29th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. package org.snippets
  2.  
  3. import rx.lang.scala._
  4. import rx.lang.scala.subjects.ReplaySubject
  5.  
  6. import scala.concurrent.Promise
  7. import scala.concurrent.ExecutionContext.Implicits.global
  8.  
  9. object MergedSubject {
  10.  
  11. def main(args: Array[String]) {
  12.  
  13. val r = ReplaySubject[Int]()
  14.  
  15. r.onNext(1)
  16. r.onNext(2)
  17. r.onNext(3)
  18.  
  19. val promise = Promise[List[Int]]()
  20.  
  21. Observable.defer(Observable[Int] { observer =>
  22. r.doOnNext { e =>
  23. println(s"next $e")
  24. observer.onNext(e)
  25. }.subscribe()
  26. observer.onCompleted()
  27. })
  28. .subscribeOn(schedulers.NewThreadScheduler()).toList
  29. .subscribe { l =>
  30. println(s"total $l")
  31. promise.success(l)
  32. }
  33.  
  34. promise.future map println
  35.  
  36. r.onNext(4)
  37.  
  38. Thread.sleep(2000)
  39. }
  40.  
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement