簡體   English   中英

將IgniteFuture轉換為Scala Future

[英]Convert IgniteFuture to Scala Future

是否可以將IgniteFuture轉換為Scala Future

我寫了以下代碼:

class ScalaIgniteFuture[T](future: IgniteFuture[T]) {
  def toFuture: Future[T] = {
    val result = Promise[T]
    future
      .listen(f => {
        result.tryComplete(Try{
          f.get()
        })
      })

    result.future
  }
}

它是正確的?

是的,但是您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM