我有這個換理解:地圖或匹配Scalaz.EitherT
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
left
和right
之間?
我肯定會去折! –