У меня есть функция (я удалил тип, потому что я больше озабочен тем, как собрать все вместе):Как чисто проверить функции входов и возвращают будущее в Scala
def func(opt1: Option, opt2: Option) = Future {
for {
o1 <- opt1
o2 <- opt2
} functionThatReturnsAFuture(o1, o2)
Future.successful()
}
Я пытаюсь подтвердите параметры, а затем вызовите мою функцию, которая возвращает будущее, но я не знаю, как это сделать в идиоматической scala.
Если я это сделать:
def func(opt1: Option, opt2: Option) = Future {
for {
o1 <- opt1
o2 <- opt2
} yield functionThatReturnsAFuture(o1, o2)
}
это, естественно, будет возвращать вариант [будущее].
Я мог бы также сделать opt1.flatMap(opt2.map(functionThatReturnsAFuture)).sequence
, но это все еще довольно уродливо.
Есть ли какой-нибудь идиоматический scala (или scala + cats) способ сделать валидацию таким образом и вернуть будущее?
Спасибо!
Лично я хотел бы пойти на 'getOrElse (Future.failed) ' – nmat