有人能给我一个简单的例子,说明如何使用李浩毅的scala.rx中的计时器,它不依赖于Akka或除了scalajs、dom和rx之外的任何其他库?
Haoyi的GitHub中定时器的例子是:
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): UnitScheduler是JVM上的Akka ActorSystem,JavaScript中的setTimeout函数。
虽然api中的所有信息都很有用,但对于简单的计时器,我仍然无法获得正确的语法。
发布于 2014-07-09 20:38:16
如果我从文档中正确理解,您只需在作用域中提供一个隐式DomScheduler,而不是AkkaScheduler。
import rx.ops._
implicit val scheduler = new DomSchedulerhttps://stackoverflow.com/questions/24660796
复制相似问题