我有一个如下所示的函数:
当我调用这个runOnce函数时,如果它还没有运行过,我希望它运行某个方法并返回结果。如果已经运行过,我只希望它返回原始结果(请求将保持相同)。如果没有参数,我可以这样做。
def runOnce(request: Request): Future[Result] = {
}
当我调用这个runOnce函数时,如果它还没有运行过,我希望它运行某个方法并返回结果。如果已经运行过,我只希望它返回原始结果(请求将保持相同)。如果没有参数,我可以这样做。
lazy val hydratedModel = hydrateImpl(request)
future for efficient filtering
def fetchHydratedModel(): Future[HydratedModelRequest] = {
hydratedModel
}
在第一种情况下该怎么做?
request
调用多次?你想要的技术叫做记忆化,但是将其应用于请求似乎非常奇怪。关于记忆化,请参见 Is there a generic way to memoize in Scala?。 - Suma