我正在使用Scala的FS2 stream library。
我有一个Stream[F, [Stream[F, A]]
,其中内部流和外部流都是无限的(Async
有适当的F
个实例。我想最终得到一个Stream[F, A]
同时从外部流和内部流中拉出来,其中来自外部流的每个新元素都替换了我正在从中拉出的当前内部流。特别是我希望“最终”至少尝试从所有内部流中拉动(尽管我可能会被外部流中断)。
我尝试使用包含当前内部流的外部Async
引用的尝试似乎在Interrupt
异常被抛出时结束。
我不想要一个简单的flatMap
甚至concurrent.join
。因为我的内心是无限的,所以它们永远不会超过有限数量的内部流。
有没有办法用FS2实现这个目标?