我可以像这样构建简单的接收器:
Flow[Int].to(Sink.ignore)
但是,这个接收器是Sink[Int, NotUsed]
类型,而我需要一些物化值类型。我该如何创建,例如Sink[Int, String]
?
Flow[Int]
是Flow[Int, Int, NotUsed]
的缩写。所以它的物化价值是NotUsed
。 to(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)