将流值列表转换为具有fs2的值流

问题描述 投票:0回答:1

我想使用fs2流,目录EitherTcats-effect IO定义具有以下签名的函数。

def list2Stream[A,B,F[_],S](vs: List[A], 
                             f: A => EitherT[IO,S,Stream[IO,B]]
                             ): EitherT[IO,S,Stream[IO,B]] = {
   ???
}

它将把vs中的每个值映射到一个值流,并在一个新流中收集所有这些值。

我尝试过类似的事情:

  vs.map(f).sequence.flatten

但是似乎没有Stream的隐式定义。

scala scala-cats fs2 cats-effect
1个回答
0
投票

以下答案是迈克尔·皮尔奎斯特(Michael Pilquist)在gitter频道中提供的:

 vs.traverse(f).map(s => Stream.emits(s).flatten) 
© www.soinside.com 2019 - 2024. All rights reserved.