如何将“流”转换为命令式读取操作



我有一个Stream[F,A],我需要将其转换为以下更"原始的流式接口",以便被代码库中不支持fs2的部分使用:

trait PrimitiveStreamRepr[F[_]] {
  def read:  F[Option[A]]
  def close: F[Unit]
}

我该怎么做呢?也许答案是这样的转换是不可能的,一旦你把一个java流式接口包装成fs2.Stream,它就可以再"转换"回"java风格"的流式接口,你必须把Stream一直泡到顶层,在那里它可以被管道传输到一些Sinkrun

本质上,您所建议的是逐步通过流。

流中的步进仍然是实现的,如果整个PrimitiveStreamRepr都将被stream包裹,那么你的建议将是可能的,这不太可能是你想要的。

关于与遗留代码的接口,请参阅async._可用于各种队列和信号的包。

对不起,我不能帮你更多,我将需要在遗留代码中的特殊情况下,你试图解决。

从本质上讲,fs2._与遗留代码集成得很好,无论是同步还是异步。但是,我们不会公开最终会以非资源安全代码结束的内部功能。

相关内容

  • 没有找到相关文章

最新更新