谁能给我一个简单的例子,使用李浩毅的 scala.rx 中的 Timer,它不依赖于 Akka 或除 scalajs、dom 和 rx 之外的任何其他库?
好易的 GitHub 上的 Timer 示例如下:
import scala.concurrent.duration._
implicit val scheduler = new AkkaScheduler(akka.actor.ActorSystem())
val t = Timer(100 millis)
var count = 0
val o = Obs(t){
count = count + 1
}
println(count) // 3
println(count) // 8
println(count) // 13
但是,这使用了 Akka。
查看scala.rx api,创建 rx.ops.Timer 的方法是:
new Timer(interval: FiniteDuration, delay: FiniteDuration)(implicit scheduler: Scheduler, p: Propagator[P], ec: ExecutionContext)
其中 Scheduler 是一个特征,定义为:
abstract def scheduleOnce[T](interval: FiniteDuration)(thunk: ⇒ T)(implicit executor: ExecutionContext): Unit
Scheduler 是 JVM 上的 Akka ActorSystem 和 JavaScript 中的 setTimeout 函数。”
尽管 api 中的所有信息都很有用,但我仍然无法获得简单计时器的正确语法。