我可以像这样构造简单的接收器:
Flow[Int].to(Sink.ignore)
但是,此接收器的类型为Sink[Int, NotUsed]
,而我需要一些物化值类型。我如何创建例如Sink[Int, String]
?
答案 0 :(得分:0)
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)