小编jyo*_*oti的帖子

对于理解返回类型

我试图从理解中返回 Future[Vector[String]] ,但我将 Future[Nothing] 作为我的返回类型。如何将 Future[Nothing] 返回类型转换为 Future[Vector[String]]?这是代码片段:

def findProjectId(projectName: String, userId: String): Future[Nothing] = {
    for {
      projectIds <- dBService.fetchProjectIdByProjectName(projectName) // projectIds is Vector[String]
      pid <- projectIds
      projectId <- dBService.filterProjectId(pid, userId) // ProjectId is Vector[String]
      if projectId.nonEmpty
    } yield {
      projectId map {
        projectid =>
          dBService.fetchRoleId map { // fetchRoleId returns Future[Vector[String]]
            case Vector(rid) => dBService.fetchCollaborator(projectid, rid) map { // fetchCollaborator returns Future[Vector[String]]
              listOfcollabs =>
                if (listOfcollabs.nonEmpty) {
                  listOfcollabs ++ Vector(userId)
                }
                else {
                  Vector(userId)
                }
            }
          }
      } …
Run Code Online (Sandbox Code Playgroud)

for-loop scala list for-comprehension scala-collections

0
推荐指数
1
解决办法
305
查看次数