我创建了一个IO[Unit]
列表,以便从URL列表中检索数据。但是现在我如何将其转换回单个IO[Unit]
?
您可以通过以下方式执行此操作
val x: List[IO[Unit]] = ???
import cats.implicits._
val y: IO[List[Unit]] = x.sequence
val z: IO[Unit] = y.map(_ => ())
这只是对 Dmytro 已经说过的补充,您实际上可以使用 traverse_
或 sequence_
一步完成。如果您只是不关心结果,这两个都非常有用。代码将如下所示:
import cats.implicits._
val x: List[IO[Unit]] = ???
val y: IO[Unit] = x.sequence_