cats-effect:如何将 `List[IO]` 转换为 `IO[List]`
cats-effect: How to transform `List[IO]` to `IO[List]`
我创建了一个 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_
我创建了一个 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_