1

Akka や scalajs、dom、rx 以外のライブラリに依存しない、Li Haoyi の scala.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): Unit

スケジューラは JVM 上の Akka ActorSystem であり、JavaScript の setTimeout 関数です。」

API のすべての情報は役に立ちますが、単純なタイマーの正しい構文をまだ取得できません。

4

1 に答える 1

3

ドキュメントから正しく理解できれば、次の代わりに暗黙的な DomSchedulerをスコープに提供するだけで済みAkkaSchedulerます。

import rx.ops._

implicit val scheduler = new DomScheduler
于 2014-07-09T20:38:16.640 に答える