猫从monad堆栈中获取价值

时间:2018-02-26 20:25:07

标签: scala monads monad-transformers scala-cats

我有一个monad堆栈,用于使用cat monads变换器实现的组件的响应:

type FutureEither[A] = EitherT[Future, Error, A] 
type FutureEitherOption[A] = OptionT[FutureEither, A]

结果是有效的:

Future[Either[Error, Option[A]]]

如何以正确的方式从此堆栈中获取值或错误?如何以适当的方式并行执行多个调用的结果?例如,在这种情况下:

def fooServiceCall: FutureEitherOption[Foo]
def barServiceCall(f: Option[Foo]): FutureEitherOption[Bar]

for {
  r1 <- fooServiceCall
  r2 <- barServiceCall(r1)
} yield r2

0 个答案:

没有答案