2016-02-14 36 views
0

我有一个演员通过返回Future [String]来响应发件人。以下是代码位:Akka演员将未来发送给发件人

case PingTsdb => { 
    sender ! someService.getVersion // returns a Future[String] 
    } 

的getVersion方法返回一个Future [字符串],但是当我运行这个方法,我得到以下错误:

Cannot cast scala.concurrent.impl.Promise$KeptPromise to java.lang.String 

我明白,这是试图将未来[String]投射到一个字符串中,但我如何让这个演员工作?我可以在getVersion方法的返回值上编写一个onComplete处理程序,但有没有更好的方法?

回答

2

我想通了。我不得不使用akka.ask模式中的pipeTo方法!

getTsVersion pipeTo sender 

就这么简单!

相关问题