【问题标题】:How to convert a `Stream` into imperative read operations如何将“流”转换为命令式读取操作
【发布时间】:2016-07-28 13:13:11
【问题描述】:

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

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

我该怎么做呢? 也许答案是这样的转换是不可能的,一旦你将一个java流接口包装成fs2.Stream,它就可以不再“转换”回“java风格”流接口,必须冒泡Stream通往顶层的方式,它可以通过管道传输到一些 Sinkrun

【问题讨论】:

    标签: scala fs2


    【解决方案1】:

    基本上你的建议是通过流。

    流中的步进仍然实现,如果整个 PrimitiveStreamRepr 将用 Stream 包装,您的建议将是可能的,这不太可能是您想要的。

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

    抱歉,我无法为您提供更多帮助,我需要您尝试解决的遗留代码中的特殊情况。

    基本上 fs2._ 与遗留代码很好地集成,不管它是同步还是异步。但是,我们不会公开最终会出现在非资源安全代码中的内部功能。

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 2018-04-02
      • 1970-01-01
      • 2021-10-08
      • 2020-02-10
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      相关资源
      最近更新 更多