代码之家  ›  专栏  ›  技术社区  ›  Nishan

Reactive Slick未来响应未呈现播放模板

  •  0
  • Nishan  · 技术社区  · 9 年前

    我正在研究Slick 3+Play Framework和Scala。我不知道为什么我的Play模板没有呈现我第一次从Slick DB调用中获得的数据。当我再次刷新同一页面时,它显示了数据,但无法第一次呈现。

    这是我的代码,

    Slick DB调用:

    def findByAccessToken(Id: String): Future[Option[Organization]] = 
    db.run(orgs.filter(_.Id=== Id).result.headOption)
    

    控制器操作呼叫:

    def getOrgInfo = Action.async { request =>
    
    val maybeOrg = for {
      org <- orgDAO.findByAccessToken(request.session.get("oauthAccessToken").get)
    } yield org
    
    maybeOrg.map {
      case org =>
        org match {
          case Some(c) => Ok(views.html.account(c))
          case None => NotFound
        }
    }
    

    最终播放模板代码:

    @(Org: Organization)
    @container("Org Info") {
    
    <h1>Org Information</h1>
    
    <ul>
    
        <li>
            User Id: @Org
        </li>
    </ul>
    
    }
    

    看起来,当我第一次加载页面时,db调用还没有传递结果,但因为当我刷新页面时,它显示了数据。

    如何处理这个场景以及第一次呈现的数据?

    谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   nemoo    9 年前

    这可能与模板无关。您可以添加一些调试语句来验证这一点。也许在触发第一个请求时令牌不存在?