cats-effect:如何将`List [IO]`转换为`IO [List]`

时间:2018-04-12 15:27:50

标签: scala io scala-cats

我创建了一个IO[Unit]列表,以便从URL列表中检索数据。但现在我如何将它转换回单IO[Unit]

2 个答案:

答案 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_