如何使用一些MaterializedValue创建接收器

时间:2019-04-24 15:15:51

标签: scala akka-stream

我可以像这样构造简单的接收器:

Flow[Int].to(Sink.ignore)

但是,此接收器的类型为Sink[Int, NotUsed],而我需要一些物化值类型。我如何创建例如Sink[Int, String]

1 个答案:

答案 0 :(得分:0)

Flow[Int]Flow[Int, Int, NotUsed]的缩写。因此其物化值为NotUsedto(Sink.ignore)也是toMat(Sink.ignore)(Keep.left)的缩写。基本上,它将保持连接在一起的两个元素中第一个元素的物化值(在这种情况下为Flow[Int])。这取决于您要如何将整数流转换为字符串。例如,您可以执行以下操作:

val x: Sink[Int, Future[immutable.Seq[String]]] = Flow[Int].map(_.toString).toMat(Sink.seq)(Keep.right)