[英]Convert IgniteFuture to Scala Future
It is possible to convert an IgniteFuture to a Scala Future ? 是否可以将IgniteFuture转换为Scala Future ?
I have written the following code: 我写了以下代码:
class ScalaIgniteFuture[T](future: IgniteFuture[T]) {
def toFuture: Future[T] = {
val result = Promise[T]
future
.listen(f => {
result.tryComplete(Try{
f.get()
})
})
result.future
}
}
It is correct? 它是正确的?
Yes, but you can use implicit
class pattern to extend the API. 是的,但是您可以使用implicit
类模式来扩展API。
import scala.util.Try
implicit class IgniteFutureUtils[T](igniteFuture: IgniteFuture[T]) {
def toScalaFuture = {
val promise = Promise[T]()
igniteFuture.listen { k =>
promise.tryComplete(Try(k.get))
}
promise.future
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.