我有这个方法:
def findById(id: String): Customer = {
(new CustomerDaoEs).retrieve(Id[Customer](id)) onComplete {
case Success(customer) => customer
case Failure(t) => {
throw new InvalidIdException(id.toString, "customer")
}
}
}
当然,问题在于它返回的是 Unit 而不是 Customer ......所以基本上 onComplete 的行为并不像模式匹配。
有什么方法可以继续返回客户(或 Option[Customer])并使这项工作变得更好(我的意思是保持这个 onComplete 干净的结构)?