如何将Stream [IO,List [A]]转换为Stream [IO,A]

时间:2018-04-10 10:39:49

标签: scala scala-cats fs2

我想解析一个输出A集合的json文件。 Output的签名是IO[List[A]]

如何将此值转换为StreamStream[IO, A]? 我可以转换为Stream[IO, List[A]],但这不是我想要的

fs2.Stream.eval(input).flatMap(x => fs2.Stream.apply(x)) 感谢

2 个答案:

答案 0 :(得分:3)

您还可以使用Stream.emits,它接受​​Seq,所以fs2.Stream.eval(output).flatMap(fs2.Stream.emits(_))

这比使用带有varargs的apply更有效,因为它避免了包装和展开序列结构-在专门的原始集合中可以节省很多。

答案 1 :(得分:1)

尝试

fs2.Stream.eval(output).flatMap(x => fs2.Stream.apply(x: _*))

What does `:_*` (colon underscore star) do in Scala?