可以在JVM Scala和Scala.js中使用的计时器

时间:2019-05-22 15:11:50

标签: java scala timer scala.js

目前,我正在开发一个交叉编译到Scala.js和普通JVM Scala的项目。现在,我需要实现一个计时器(用于重新连接websocket),该计时器每x秒触发一次函数。可以交叉编译的计时器的良好实现是什么?

据我所知,我无法使用例如:

  • java.util.concurrent(不会编译为Scala.js)
  • setTimeoutsetInterval(javascript-不能从JVM Scala使用)

有什么好的选择吗?或者我错了,可以使用这些吗?

1 个答案:

答案 0 :(得分:6)

java.util.Timer受Scala.js支持,并完全提供您正在描述的功能:

val x: Long = seconds
val timer = new java.util.Timer()
timer.scheduleAtFixedRate(new java.util.TimerTask {
  def run(): Unit = {
    // this will be executed every x seconds
  }
}, 0L, x * 1000L)

请咨询我上面链接的JavaDoc,以获取有关API的详细信息。