如何在Akka Streams中将集合用作源?

时间:2017-07-24 20:17:13

标签: scala akka akka-stream

我是使用Akka Streams API的新手。我正在尝试创建自定义图形阶段。对于我的每个阶段,我希望每个“元素”都是一个scala集合,例如,一个整数向量。但是,当我使用Source(Vector(1,2,3))或沿着这些线的东西时,它会单独传递元素1,2,3。有没有办法可以传递整个向量,因为阶段的结果取决于向量中项目之间的关系?目前我使用List作为“包装器”,但我不喜欢这种解决方案。提前致谢。

示例代码:

val graphStage: Graph[FlowShape[Vector[Int], Vector[Int]], NotUsed = new GraphStage

val vector = Source(Vector(1,2,3))  //passes in 1, 2, 3 individually, want Vector(1,2,3) passed in whole

val resultFuture = vector.via(graphStage).runForeach( _ => println)

1 个答案:

答案 0 :(得分:1)

您可以使用Source.single

val vector = Source.single(Vector(1, 2, 3))