我正在尝试创建一个带有1个输入源的Graph,获取最后一个元素并生成新的源。目前我设法只通过使用Sink.last实现第一个流来实现这一目的。
Source.fromFuture(curStream.runWith(Sink.last).map(last => createStreamFromOffset(last)))
答案 0 :(得分:0)
找到解决方案:
val g = RunnableGraph.fromGraph(GraphDSL.create() { implicit builder =>
import GraphDSL.Implicits._
val in = Source(1 to 10)
val out = Sink.foreach(println)
val concat = builder.add(Concat[Int](2))
val f1 = Flow[Int].fold(0) { (acc, el) =>
el
}
in ~> f1 ~> concat
// creating new source from old stream last value
in.via(f1).flatMapConcat(_ => Source(666 to 670)) ~> concat
concat ~> out
ClosedShape
})
g.run()