scalaz.io : 展平 IO[Throwable, Seq[IO[Nothing, String]]]

scalaz.io : flatten IO[Throwable, Seq[IO[Nothing, String]]]

我有 IO[Throwable, Seq[IO[Nothing, String]]] 我想把它变成 IO[Throwable, Seq[String]]。知道怎么做吗?我尝试使用 flatten 但我得到了奇怪的隐式缺失错误。

No implicits found for parameter asTraversable: IO[Nothing, Step] => GenTraversableOnce[B_]

谢谢!

我找到了解决方案:

val data1: IO[Throwable, Seq[IO[Nothing, String]]]
val data2: IO[Throwable, IO[Nothing, Seq[String]]] = data1.map(IO.sequence)
val data3: IO[Throwable, Seq[String]] = data2.flatten

一步完成:

data1.flatMap(IO.sequence)

感谢 @andrey-tyukin