我正在使用 monix 来解决副作用并以这种类型结束
Task[Either[A, Task[B]]]
,有没有办法得到Task[Either[A, B]]
?
到目前为止,我所能做的就是转换Task[Either[A, Task[B]]]
为Task[Any]
,基本上Either
使用模式匹配和展平进行删除,但在过程中缺少类型信息
val tEitherT: Task[Either[A, Task[B]]] = ???
val finalType: Task[Any] =
tEitherT.map(either => {
either match {
case Right(value) => value // Task[B]
case Left(value) => Task(value) // Lift
}
}).flatten