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

Timer that can be used in JVM Scala & Scala.js

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

据我所知我不能使用例如:

有没有什么好的替代品,或者我错了,这些可以用吗?

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)

有关 API 的详细信息,请参阅上面链接的 JavaDoc。