我有一个Actor通过返回Future [String]来响应发送者。这是代码位:
case PingTsdb => {
sender ! someService.getVersion // returns a Future[String]
}
getVersion方法返回Future [String],但是当我运行此方法时,我收到以下错误:
Cannot cast scala.concurrent.impl.Promise$KeptPromise to java.lang.String
我知道它正在尝试将Future [String]转换为String,但是如何让这个actor工作呢?我可以在getVersion方法返回值上写一个onComplete处理程序,但是有更好的方法吗?
答案 0 :(得分:2)
我想出来了。我不得不使用akka.ask模式中的pipeTo方法!
getTsVersion pipeTo sender
就这么简单!