1

scala Akka Stream グラフから具体化された結果を取得する方法を理解しようとしています。

を使用して"com.typesafe.akka" %% "akka-stream-experimental" % "1.0"います。

ドキュメントを見ましたが、例が見つかりませんでした。

だから、私はコードを持っているとしましょう

val g = FlowGraph.closed() { implicit builder=>
  import FlowGraph.Implicits._

  val in = Source.apply(1 until 10)
  val plus = Flow[Int].map(_ + 10)
  val out = Sink.fold[Seq[Int], Int](Nil){
    case (acc, num) => if (num % 2 == 0) acc :+ num else acc
  }

  in ~> plus ~> out
}

val result = g.run()

グラフから結果を取得したいのですが、gUnit が返されます。それに対処する方法は?

ありがとうございました。

4

2 に答える 2

0

からはできないようですFlowGraph。すべてのフローを外部で作成し、それらを 内で使用する必要がありますFlowGraph

val in = Source.apply(1 until 10)
val plus = Flow[Int].map(_ + 10)
val out = Sink.fold[Seq[Int], Int](Nil) {
  case (acc, num) => if (num % 2 == 0) acc :+ num else acc
}

したがって、コードは次のようになります

val g = FlowGraph.closed(in, plus, out)((_, _, _)) { implicit builder => (src, f, dst) =>
  import FlowGraph.Implicits._
  src ~> f ~> dst
}

私がより簡単に見つけた別の方法は、

val z = in.via(plus).toMat(out)(Keep.right) 
于 2015-09-16T13:40:43.810 に答える