猫 EitherT 转换为 Future[结果]

Bak*_*aku 1 scala scala-cats

我的结果如下:

EitherT[Future, IllegalStateException, Result]
Run Code Online (Sandbox Code Playgroud)

如何转换为 Future[Result] ?让 Future 因 IllegalStateException 失败?我知道我可以像 resultT.value 那样获取 Future[Either[Exception, Res]] 并转换它,但也许有更简单的方法。

Lui*_*rez 5

正如我常说的,Scaladoc是您的朋友。

def rethrowT(implicit F: MonadError[F, _ >: A]): F[B]

给定MonadError[F, E :> A]转换Either[F, A, B]F[B]如果值为BF[B]则成功 如果值为AF[B]则失败E

您需要做的就是:

resultT.rethrowT
Run Code Online (Sandbox Code Playgroud)