Я использую 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