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

How can I use collections as a Source in Akka Streams?

我刚开始使用 Akka Streams API。我正在尝试创建自定义图形阶段。对于我的每个阶段,我希望每个 "element" 都是一个 Scala 集合,例如,一个整数向量。但是,当我使用 Source (Vector(1,2,3)) 或类似的东西时,它会分别传递元素 1、2、3。有没有一种方法可以传递整个向量,因为阶段的结果取决于向量中项目之间的关系?目前我正在使用 List 作为 "wrapper" 但我不喜欢该解决方案。提前致谢。

示例代码:

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)

您可以使用 Source.single:

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