如何执行Akka流源?

时间:2018-12-15 16:27:07

标签: scala akka akka-stream

我有这样的Source

val colorSource = myMethod(ctx, id)
  .via(framing("\n"))
  .map(_.utf8String)
  .map(_.trim)
  .map(c => ColorParser(c))
  .collect {
    case Right(color) => color
  }

我该如何实际运行它并获得List[Color]?首先,我想打印它以查看内容,然后还可以将List[Color]传递给其他方法。

我这样做是为了打印它,但是没有用:

val values = for {
  t <- colorSource.runWith(Sink.ignore)
} yield t
total.map(println _)

1 个答案:

答案 0 :(得分:2)

要获取Future[List[Color]]

val colorList: Future[List[Color]] =
  colorSource
    .runWith(Sink.seq[Color])
    .map(_.toList)

如果您只想打印流的内容:

colorSource.runForeach(println)