[英]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.