【发布时间】:2017-10-03 18:19:05
【问题描述】:
我正在尝试正确执行此查询,但出现错误。首先,searchUser 返回一个匹配的 UserEntries 序列,其中包含用户的唯一 ID,对于每个 userId,第二个查询从另一个表中获取一些其他用户信息 + 地址。
代码:
def searchUsers(pattern: String) = auth.SecuredAction.async {
implicit request =>
usersService.searchUser(pattern) flatMap { usrList =>
for {
u <- usrList
ui <- usersService.getUsersWithAddress(u.id)
} yield {
Ok(views.html.UserList(ui))
}
}
}
所用 API 的签名:
def searchUser(pattern: String): Future[Seq[UserEntry]] = ...
def getUsersWithAddress(userId: Long): Future[Seq[(UserProfile, Seq[String])]] = ...
错误:
[error] modules/www/app/controllers/Dashboard.scala:68: type mismatch;
[error] found : scala.concurrent.Future[play.api.mvc.Result]
[error] required: scala.collection.GenTraversableOnce[?]
[error] ui <- usersService.getUsersWithAddress(u.id)
[error] ^
[error] one error found
[error] (www/compile:compileIncremental) Compilation failed
如果我注释掉“u
【问题讨论】:
标签: scala