4
具有阿卡流Sink
:如何 “contramap” 阿卡流水槽
val sink: Sink[Foo, Any] = ???
和Bar
一个功能Foo
:
val f: Bar => Foo = ???
我想contramap(与相反的地图)sink
与f
得到类型的接收器,但在库中找不到这样一个简单的方法。如何实现我所需要的?
具有阿卡流Sink
:如何 “contramap” 阿卡流水槽
val sink: Sink[Foo, Any] = ???
和Bar
一个功能Foo
:
val f: Bar => Foo = ???
我想contramap(与相反的地图)sink
与f
得到类型的接收器,但在库中找不到这样一个简单的方法。如何实现我所需要的?
原来相当简单。
创建Flow
接受Bar
S:
val flow: Flow[Bar, Bar, Unit] = Flow[Bar]
与f
流水线结果原来sink
图吧:
val sink2: Sink[Bar, Unit] = flow.map(f).to(sink)
随着2.4.X
akka-streams
版本,它是更简单:
val sink3: Sink[Bar, Future[Done]] = sink.contramap(f)