我正在使用 Scala 2.10 / Akka 2.1 / Play 2.1,我对 firstCompletedOf 有疑问。如何在 firstCompletedOf 正文中识别结果的发送者?看下面的代码:
val futureString: Future[String] = myTestActor.ask(Message).mapTo[String]
val timeoutFuture = play.api.libs.concurrent.Promise.timeout("timed_out", 5 seconds)
Async {
Future.firstCompletedOf(Seq(futureString, timeoutFuture)).map {
case result: String => {
println("got message " + result)
}
}
}
在某些时候里面myTestActor
有一个sender ! "actor_result"
,但超时可能首先出现。
有没有一种快速、方便的方法来识别结果的发送者?sender
不起作用,我认为对字符串的检查(如果等于timed_out
)会很脏。