[英]How to “contramap” akka-streams Sink
有akka-streams Sink
:
val sink: Sink[Foo, Any] = ???
以及从Bar
到Foo
的功能:
val f: Bar => Foo = ???
我想contramap( 地图的对面) sink
与f
得到类型的水槽Sink[Bar, Any]
,但无法找到在库中这样的简单方法。 如何实现我的需求?
事实证明这很简单。
创建Flow
接受Bar
:
val flow: Flow[Bar, Bar, Unit] = Flow[Bar]
并使用f
pipelining结果将其映射到原始接收sink
:
val sink2: Sink[Bar, Unit] = flow.map(f).to(sink)
使用akka-streams
版本2.4.X
它甚至更简单:
val sink3: Sink[Bar, Future[Done]] = sink.contramap(f)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.