I would like to know how to convert a List[Try[T]]
into Try[List[T]]
in Scala?
I have tried using an accumulator and folding right but it doesn't seem ideal.
Using cats it's as easy as:
import cats._
import cats.data._
import cats.implicits._
import scala.util.{Try, Success, Failure}
val tries: List[Try[Int]] = List(Success(1), Success(2), Success(3))
tries.sequence
More information in the Traverse docs.
Try(list.map(_.get))
This will return only the first failure, so you need something more complicated if you want to catch all the failures in the list.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With