1

私はこれを理解するために持っています:

 val seq = for {
        accessToken <- EitherT(getAccessToken(code))
        data <- EitherT(getDefaultData(accessToken))
        user <- EitherT(mapUser(data.getResponseBody))
      } yield {
        if (Users.getUserByOriginId(user.origin).isEmpty) {
          Users.register(user)
          OAuthProvider.redirectToSignUp(user.userId.get)
        } else {
          OAuthProvider.redirectToAuthentication(user.userId.get)
        }
      }

操作を連鎖com.twitter.util.Futureさせ、各メソッドがFuture[\/[InvalidResponse, CorrectResponse]]

私は今、結果を超えたいと思ってmapいます。match

val response = seq.run match {
    case x.left => "something"
    case y.right => "something else"
}// this syntax is invalid

とのmatch間の正しい構文は何ですか?leftright

4

2 に答える 2

-3

検証を使用するのはどうですか?それなら

{
 case Success(s) => do s
 case Failure(f) => do f 
}

私はあなたの場合だと思います、それは

{
  case Right(r) => do r
  case Left(l) => do l
}
于 2013-10-07T21:14:12.900 に答える