拥有 akka-streams Sink
:
val sink: Sink[Foo, Any] = ???
以及Bar
到Foo
的函数:
val f: Bar => Foo = ???
我希望地图(与地图相反)sink
与f
相对应,以获得Sink[Bar, Any]
类型的接收器,但是在图书馆找不到这么简单的方法。如何实现我的需求?
答案 0 :(得分:2)
结果很简单。
创建Flow
接受Bar
s:
val flow: Flow[Bar, Bar, Unit] = Flow[Bar]
并将f
流水线搜索结果映射到原始sink
:
val sink2: Sink[Bar, Unit] = flow.map(f).to(sink)
答案 1 :(得分:2)
使用akka-streams
版本2.4.X
,它更简单:
val sink3: Sink[Bar, Future[Done]] = sink.contramap(f)