在接收器之前进行流操作

时间:2019-03-04 14:29:36

标签: akka-stream

我有一个需要转换成另一个源的源。一路上,我还想挖掘流并将其发送到接收器。这也可以和toT和wireTap一起使用。

但是,我想在数据到达接收器之前对数据进行其他转换:

Source ---> map ---> scan ---> map ---> return as Source
                           \
                            \ alsoTo
                             \
                              \ ---> map --> Sink

在文档中,我读到:

  

可以将流附加到源,从而生成复合   源,也可以在流到水槽之前添加一个   新的水槽。

但是,我找不到将这样的流程添加到接收器的示例,例如在转发到接收器之前执行“映射”操作。

非常简化的示例:

val sink = Sink.foreach(println)
val source = Source(List(1, 2, 3, 4, 5))
val transformed_source = source.map(n => n * 10).alsoTo(sink).map(n => n + 1)

// but I want something along the lines of
alsoTo(map(n => "The result is " + n) ~> sink)

1 个答案:

答案 0 :(得分:0)

我认为Flow.to是我想要的。

def to[Mat2](sink: Graph[SinkShape[Out], Mat2]): Sink[In, Mat]
  

将此流连接到接收器,并合并以下处理步骤:   两者。