将Scala Future转换为Twitter Future

詹斯

我将Finagle用作Web服务器,我想从我的应用程序逻辑中返回Scala-Futures。当然,如何以非阻塞方式将scala.concurrent.Future转换为com.twitter.util.Future?

Odomontois

没有足够的环境对此进行测试,但这是我为之撰写的内容"com.twitter" %% "finagle-http" % "6.25.0"

import com.twitter.{util => twitter}
import scala.concurrent.{ExecutionContext, Promise, Future}
import scala.util.{Failure, Success, Try}
import language.implicitConversions

object TwitterConverters {
  implicit def scalaToTwitterTry[T](t: Try[T]): twitter.Try[T] = t match {
    case Success(r) => twitter.Return(r)
    case Failure(ex) => twitter.Throw(ex)
  }

  implicit def twitterToScalaTry[T](t: twitter.Try[T]): Try[T] = t match {
    case twitter.Return(r) => Success(r)
    case twitter.Throw(ex) => Failure(ex)
  }

  implicit def scalaToTwitterFuture[T](f: Future[T])(implicit ec: ExecutionContext): twitter.Future[T] = {
    val promise = twitter.Promise[T]()
    f.onComplete(promise update _)
    promise
  }

  implicit def twitterToScalaFuture[T](f: twitter.Future[T]): Future[T] = {
    val promise = Promise[T]()
    f.respond(promise complete _)
    promise.future
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Scala Future转换为Java Future

来自分类Dev

将Java Future转换为Scala Future

来自分类Dev

将 IgniteFuture 转换为 Scala Future

来自分类Dev

将 Java CompletableFuture 转换为 Scala Future

来自分类Dev

将Future [T]转换为永远成功的Future [Option [T]]

来自分类Dev

将`Future [Option [X]]`转换为`Option [Future [X]]`

来自分类Dev

将Future [MyType]转换为Future [Option [MyType]]

来自分类Dev

将Future [T]转换为Future [Try [T]]

来自分类Dev

Scala:将Future [Option [List [User]]]转换为Future [Map [Long,User]]

来自分类Dev

Scala将Map [Int,Future [Seq [T]]]转换为Future [Map [Int,Seq [T]]]

来自分类Dev

如何将Future转换为Stream?

来自分类Dev

在Scala中将Future [Future [(String,String)]]转换为Future [(String,String)]用于理解

来自分类Dev

使用(B => Future [C])函数将Future [Either [A,B]]转换为Future [Either [A,C]]

来自分类Dev

如何将Future [Option [(Person,Future [Vector [Order]]]]]]转换为Future [Option [(Person,Vector [Order]]]]]

来自分类Dev

使用(B => Future [C])函数将Future [Either [A,B]]转换为Future [Either [A,C]]

来自分类Dev

在Scala中将Future [Unit]转换为Try [Unit]

来自分类Dev

在Scala中将Future [List [Error \ / Double]]转换为Future [[List [Error] \ / List [Double]]

来自分类Dev

如何将std :: future <T>转换为std :: future <void>?

来自分类Dev

如何在不调用Future.get的情况下将Future转换为Stream?

来自分类Dev

将Future [List [String]]转换为List [String]

来自分类Dev

Flutter:如何将Future <String>转换为String?

来自分类Dev

将URLSession.DataTaskPublisher转换为Future发布者

来自分类Dev

使用合并运算符将Future转换为Publisher

来自分类Dev

将Future <void>转换为RxJava Observable或Flowable

来自分类Dev

将Source [ByteString,Future [IOResult]]转换为列表[String]

来自分类Dev

Scala 将 Future[IOResult] 映射到 Future[Unit]

来自分类Dev

Scala将异步调用与Future同步

来自分类Dev

`Future [Option [Future [Option [X]]]]`转换为`Future [Option [X]]`

来自分类Dev

我们如何将Java中的反应式JDBC调用转换为Scala中的Future?

Related 相关文章

  1. 1

    将Scala Future转换为Java Future

  2. 2

    将Java Future转换为Scala Future

  3. 3

    将 IgniteFuture 转换为 Scala Future

  4. 4

    将 Java CompletableFuture 转换为 Scala Future

  5. 5

    将Future [T]转换为永远成功的Future [Option [T]]

  6. 6

    将`Future [Option [X]]`转换为`Option [Future [X]]`

  7. 7

    将Future [MyType]转换为Future [Option [MyType]]

  8. 8

    将Future [T]转换为Future [Try [T]]

  9. 9

    Scala:将Future [Option [List [User]]]转换为Future [Map [Long,User]]

  10. 10

    Scala将Map [Int,Future [Seq [T]]]转换为Future [Map [Int,Seq [T]]]

  11. 11

    如何将Future转换为Stream?

  12. 12

    在Scala中将Future [Future [(String,String)]]转换为Future [(String,String)]用于理解

  13. 13

    使用(B => Future [C])函数将Future [Either [A,B]]转换为Future [Either [A,C]]

  14. 14

    如何将Future [Option [(Person,Future [Vector [Order]]]]]]转换为Future [Option [(Person,Vector [Order]]]]]

  15. 15

    使用(B => Future [C])函数将Future [Either [A,B]]转换为Future [Either [A,C]]

  16. 16

    在Scala中将Future [Unit]转换为Try [Unit]

  17. 17

    在Scala中将Future [List [Error \ / Double]]转换为Future [[List [Error] \ / List [Double]]

  18. 18

    如何将std :: future <T>转换为std :: future <void>?

  19. 19

    如何在不调用Future.get的情况下将Future转换为Stream?

  20. 20

    将Future [List [String]]转换为List [String]

  21. 21

    Flutter:如何将Future <String>转换为String?

  22. 22

    将URLSession.DataTaskPublisher转换为Future发布者

  23. 23

    使用合并运算符将Future转换为Publisher

  24. 24

    将Future <void>转换为RxJava Observable或Flowable

  25. 25

    将Source [ByteString,Future [IOResult]]转换为列表[String]

  26. 26

    Scala 将 Future[IOResult] 映射到 Future[Unit]

  27. 27

    Scala将异步调用与Future同步

  28. 28

    `Future [Option [Future [Option [X]]]]`转换为`Future [Option [X]]`

  29. 29

    我们如何将Java中的反应式JDBC调用转换为Scala中的Future?

热门标签

归档