1
我的目標是找到一個有效的「船員」,其中用戶通過路線中的鑰匙。如果找到工作人員,我們將嘗試找到演員/主管並告訴它開始。在代碼中,我故意給出了錯誤的actor路徑,所以它會拋出「ActorNotFound」異常。我期待它匹配「失敗(失敗)」,所以我可以返回一個錯誤的請求;但它一直陷入「成功」。這是爲什麼?爲什麼我的「嘗試」在嘗試匹配時總是陷入「成功」?
代碼:
def index = Action.async {
val crewType = "x"
Future(Crew.findCaptainByCrewType(crewType)).flatMap(_.fold(
Future(BadRequest(s"Invalid crew name provided: $crewType; will not run."))
)(crew =>
Future(Try(system.actorSelection(s"/user/${crew.cptName}randomness").resolveOne().map {actorRef =>
actorRef ! "hi hi"
}) match {
case Success(success) =>
Logger.info("success")
Ok("success")
case Failure(ex) =>
Logger.error("failure", ex)
BadRequest("failure")
}
)))
}
TIL什麼如何恢復工作的代碼。非常感謝! – iCodeLikeImDrunk
以及Future.successful。 – iCodeLikeImDrunk