Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从服务bean返回未来并在Play/Scala中执行Ok.sendEntity_Scala_Playframework - Fatal编程技术网

从服务bean返回未来并在Play/Scala中执行Ok.sendEntity

从服务bean返回未来并在Play/Scala中执行Ok.sendEntity,scala,playframework,Scala,Playframework,我有一个我写的服务bean,它看起来像这样 def myStream(name: String): HttpEntity.Streamed = { } 在我的控制器中,我可以将其用作: def myControllerHandler(id: Name) = Action { Ok.sendEntity(myStream(id)) } 我想将我的服务方法的签名更改为 def myStream(name: String):Future[HttpEntity.Streamed] = { }

我有一个我写的服务bean,它看起来像这样

def myStream(name: String): HttpEntity.Streamed = {

}
在我的控制器中,我可以将其用作:

def myControllerHandler(id: Name) = Action {
  Ok.sendEntity(myStream(id))
}
我想将我的服务方法的签名更改为

def myStream(name: String):Future[HttpEntity.Streamed] = {

}
然后在我的控制器中,下面的代码无法编译,我无法找到使其工作的方法

def downloadLocalBackup(name: String) = Action {
  myStream(name) map { fileStream =>
    Ok.sendEntity(fileStream)
  }
}
此操作失败的原因是操作可以采取
Result
类型,但不能采取
Future[Result]


如何处理它?

使用
Action.async

def downloadLocalBackup(name: String) = Action.async {
  myStream(name) map { fileStream =>
    Ok.sendEntity(fileStream)
  }
}
从播放文档:

当我们使用
操作时。应用
builder方法来构建操作 到目前为止,要发送异步结果,我们需要使用
Action.async
builder方法:


使用
操作。异步

def downloadLocalBackup(name: String) = Action.async {
  myStream(name) map { fileStream =>
    Ok.sendEntity(fileStream)
  }
}
从播放文档:

当我们使用
操作时。应用
builder方法来构建操作 到目前为止,要发送异步结果,我们需要使用
Action.async
builder方法:


谢谢,我真傻,竟然错过了文档中的基本内容!谢谢,我真傻,竟然错过了文档中的基本内容!