Я не уверен, как это сделать, то, что я пытаюсь сделать, это:
output1 <- step1(...)
output2 <- step2(....)
....
Что я пытаюсь сделать, это для конкретного output1
, я бы не хотел выполнять step2
и просто пройти через это.Есть ли встроенная функциональная часть scalaz.zio.IO
?
Я не могу найти ничего кроме вложенного flatMap
:
step1(...).flatMap {
case ... => step2(....)
case ... => step3(...)
}
Но это становится уродливым, когда step2
также приводит к условию и т. Д. *
Я мог бы также использовать Left
часть IO
, но я уже использую ее для Exception
и отслеживания ошибок.
Будет ли IO[Error, IO[ByPassCondition, ResultForStep2]]
работать?Но тогда я не могу передать ResultForStep2
до step2
, если установлено ByPassCondition
...