首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Bijection将Akka future转换为Twitter Future时出错

使用Bijection将Akka future转换为Twitter Future时出错
EN

Stack Overflow用户
提问于 2020-07-13 09:56:03
回答 1查看 57关注 0票数 0

我使用Twitter Bijection库将Akka Future转换为Twitter Future,这样我就可以使用Twitter future支持的丰富库了。

我的函数类似于:

代码语言:javascript
复制
import scala.concurrent.{Await, ExecutionContext, Future}
import com.twitter.util.{Await, Future, Duration}
import com.twitter.bijection.Conversion.asMethod

 def blockingAskWithRetry(receivers: ArrayBuffer[ActorRef], message: Any, maxAttempts: Int)(implicit timeout: Timeout): Any = {
    var futures: ArrayBuffer[com.twitter.util.Future[Any]] = new ArrayBuffer[com.twitter.util.Future[Any]]()

    receivers.foreach(receiver => {
      futures.append((receiver ? message).as[com.twitter.util.Future[Any]])
    })

    // I haven't used maxAttempts and timeout params as of now
    com.twitter.util.Await.all(futures: _*)
  }

我在这里得到的错误是:

代码语言:javascript
复制
[error] could not find implicit value for parameter conv: com.twitter.bijection.Conversion[scala.concurrent.Future[Any],com.twitter.util.Future[Any]]

[error] futures.append((receiver ? message).as[com.twitter.util.Future[Any]])
[error]                                       ^

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-13 18:47:29

你的代码缺少Scala Future和Twitter Future之间的隐式双射,它可以从推特bijection-util库中导入(引入隐式范围):

import com.twitter.bijection.twitter_util.UtilBijections.twitter2ScalaFuture

此外,为了让一切正常工作,您需要导入隐式执行上下文或将其作为隐式参数放入您的方法中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62868241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档