Предположим, у меня есть следующее:
val ints: Seq[Int] = ???
def foo(i: Int): EitherT[Future, Error, Seq[String]] = ???
Я хочу вызвать foo
с ints
и накапливать Seq[String]
результат, чтобы в итоге вернуть EitherT[Future, Error, Seq[String]]
.
ints.map(i => foo(i))
Очевидно, что вышеприведенное возвращает Seq[EitherT[Future, Error, Seq[String]]]
, и это не я хочу. Когда foo
возвращает Error
в первый раз в map
, я хочу прекратить обход и вернуть ошибку.
Как правильно достичь моей цели?