我第一次在使用 Akka 和 Scala 的实际项目中工作。在为 DAO 设计接口时(将有两种实现:内存和 mongo),我有以下疑问。假设我们有这样的 UserRepository 同步版本
trait UserRepository {
def find(id: Int): Option[User]
def save(user: User): User
def delete(user: User): Unit
}
它的异步版本将是这样的:
trait UserRepository {
def find(id: Int): Future[Option[User]]
def save(user: User): Future[User]
def delete(user: User)
}
您将如何定义删除方法的返回时间?未来[单位]?未来[任何] 未来[无效]?在异步操作中返回的最佳类型是什么,我只关心它的副作用是否成功应用。我没有什么要返回的,但我想知道删除是否成功完成,或者在异常情况下能够注册 onFailure 回调。