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