我有一個等待未來結果的演員。調用的onComplete未來導致編譯器錯誤:斯卡拉/阿卡未來onComplete成功編譯器錯誤
error: constructor cannot be instantiated to expected type [scalac] found : akka.actor.Status.Success [scalac] required: scala.util.Try[Iterable[Any]] [scalac] case Success(result: List[PCBInstanceStats]) => { [scalac] ^
演員將會得到:
case "pcbStatus" => {
val future = Future.traverse(context.children)(x => {
(x ? "reportStatus")(5 seconds)
})
future.onComplete {
case Success(result: List[PCBInstanceStats]) => {
self ! result
}
}
不知道如何爲此提供正確類型的參數。
嘗試添加'失敗'以及?也許類型是在'Success [List [PP]] => Unit'而不是'Try [List [PP]] => Unit'創建的。 – wheaties
您也可以使用'pipeTo'模式,如http://doc.akka.io/docs/akka/snapshot/scala/actors.html#Ask__Send-And-Receive-Future –