我创建了一个IO[Unit]
列表,以便从URL列表中检索数据。但现在我如何将它转换回单IO[Unit]
?
答案 0 :(得分:9)
您可以通过以下方式执行此操作
val x: List[IO[Unit]] = ???
import cats.implicits._
val y: IO[List[Unit]] = x.sequence
val z: IO[Unit] = y.map(_ => ())
答案 1 :(得分:6)
除了Dmytro已经说过的内容之外,您实际上可以使用traverse_
或sequence_
一步完成。如果你不关心结果,这两个都非常有用。代码看起来像这样:
import cats.implicits._
val x: List[IO[Unit]] = ???
val y: IO[Unit] = x.sequence_