cats-effect:如何将“列表[IO]”转换为“IO[列表]”



我创建了一个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_

最新更新