我正在尝试调整question的代码。除了我的方法返回scalaz.\/
而不是scala.util.Either
之外,一切都很好。所以现在我必须写一个像这样的猴子代码:
def myFunction:Future[LeftBad \/ RightGood] = ...
val result = for {
x <- fromEither(myFunction.map(_.toEither))
} yield {
...
}
result.run
//etc
有没有办法在没有EitherT
电话的情况下从Future[\/]
构建toEither
?
答案 0 :(得分:3)
您可以使用EitherT.eitherT(...)
或EitherT(...)
:
import scalaz._, Scalaz._
val futDisjunction: Future[String \/ Int] = Future.successful(\/-(5))
scala> EitherT(futDisjunction)
// scalaz.EitherT[scala.concurrent.Future,String,Int]