正如您可以在此处阅读http://reactivex.io/documentation/operators/interval.html生成的元素是Long
从0
.
至于您的代码和结果:
在这里,您创建了 observable,并被Observable[Long]
分配到periodic
. 一切如预期。
scala> val periodic: Observable[Long] = Observable.interval(100 millis)
periodic: rx.lang.scala.Observable[Long] = rx.lang.scala.JavaConversions$$anon$2@2cce3493
在这里,您注册了一个回调,即在发出值时会发生什么。方法的返回类型foreach
是Unit
因为它没有合理的值,并且只是为了注册回调的副作用而发生。
periodic.foreach(x => println(x))
res0: Unit = ()
您看不到实际值,因为执行停止。尝试插入Thread.sleep
.
val periodic: Observable[Long] = Observable.interval(100.millis)
periodic.foreach(x => println(x))
Thread.sleep(1000)
给出类似于
periodic: rx.lang.scala.Observable[Long] = rx.lang.scala.JavaConversions$$anon$2@207cb62f
res0: Unit = ()
0
1
2
3
4
5
6
7
8
9
res1: Unit = ()