【发布时间】:2020-08-04 07:00:59
【问题描述】:
我需要在跨平台 JVM / JS 应用程序中设置 Future 超时。这个超时只会在测试中使用,所以阻塞解决方案不会那么糟糕。
我实现了以下 sn-p 以使 JVM 上的未来超时:
def runWithTimeout[T](timeoutMillis: Int)(f: => Future[T]) : Future[T] =
Await.ready(f, Duration.create(timeoutMillis, java.util.concurrent.TimeUnit.MILLISECONDS))
这不适用于 Scala.js,因为它没有实现 Await。是否有任何其他解决方案可以将超时添加到适用于 Scala.js 和 Scala JVM 的 Future?
【问题讨论】: