【问题标题】:Akka: Transforming the Input of a Sink with a Materialized ValueAkka:使用物化值转换接收器的输入
【发布时间】:2015-07-29 19:47:27
【问题描述】:

我有一个接收器:Sink[String, Mat],并希望通过映射每个元素:num: Int => ("num" + num): String 并将其转换为接收器:Sink[Int, Mat],并保留原始的具体化类型和值。

如果MatUnit,那么很简单:

def transformSink(sink: Sink[String, Unit]): Sink[Int, Unit] =
  Flow[Int].map("num" + _).to(sink)

但是如何为任何Mat 转换接收器呢?

def transformSink[Mat](sink: Sink[String, Mat]): Sink[Int, Mat] = ???

【问题讨论】:

    标签: scala akka akka-stream


    【解决方案1】:

    我认为toMat 是您正在寻找的。看看这是否适合你:

    def transformSink[Mat](sink: Sink[String, Mat]): Sink[Int, Mat] =
      Flow[Int].map("num" + _).toMat(sink)(Keep.right)
    }
    

    【讨论】:

    • 正是我需要的。不知道我是怎么错过的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2020-10-06
    • 2016-04-27
    • 1970-01-01
    • 2016-05-16
    相关资源
    最近更新 更多