1
我試圖將ActorRef傳遞給調用客戶端。下面是一些代碼:從scala.concurrent.Future獲取ActorRef [akka.actor.ActorRef]
object Sub {
implicit val timeout = Timeout(5 seconds)
lazy val default = {
val subActor = Akka.system.actorOf(Props[Sub], "sub")
subActor
}
def apply(pChannel: Concurrent.Channel[JsValue]):ActorRef = {
(default ? Register(callback)).map {
case ref:ActorRef => ref
}
}
}
客戶端調用,這是簡單地調用val sub:ActorRef = Sub(channel)
但是我來到這裏的問題是:
[error] found : scala.concurrent.Future[akka.actor.ActorRef]
[error] required: akka.actor.ActorRef
如何修改上面的代碼來獲得一個ActorRef調用代碼來獲得它需要的ref?
我看到await是api.test包的一部分。它也可以在生產代碼上正常工作嗎?對於例如實施長時間輪詢 – Hadesara
Await不屬於api.test。看'scala.concurrent.Await' – yan
對!謝謝你的澄清。 – Hadesara