首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以重构地图中的地图和地图中的地图

是否可以重构地图中的地图和地图中的地图
EN

Stack Overflow用户
提问于 2015-12-17 12:02:23
回答 1查看 138关注 0票数 0

我的服务层是returning。我现在有一个乱七八糟的东西:

代码语言:javascript
复制
userService.getAll().map { users =>
  for(u <- users) {
    groupService.getByUserId(u.id).map {
       blockingService.call(u)
       otherService.bar(u.id).map {
         lastService.foo(u.id)
      }
    }
  }
}

我能以某种方式把它清理干净吗?它有太多的内嵌map调用。

我还担心,如果将来我重构我的代码,使得blockingService.call因为基于未来而导致,我的代码可能会有意想不到的问题,所以更好地将其视为未来?

EN

回答 1

Stack Overflow用户

发布于 2015-12-17 12:15:59

将嵌套的map替换为a以进行理解:

代码语言:javascript
复制
  def doSomethingWithUser(u: User) = {
    for {
      _ <- groupService.getByUserId(u.id)
      _ <- Future(blockingService.call(u)) // Notice Future.apply here.
      _ <- otherService.bar(u.id)
      result <- lastService.foo(u.id)
    } yield result
  }

  for {
    users <- userService.getAll()
    results <- Future.traverse(users)(doSomethingWithUser) // Notice Future.traverse here.
  } yield results
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34326401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档