【问题标题】:How to execute an Akka Streams Source?如何执行 Akka Streams Source?
【发布时间】:2018-12-17 05:21:21
【问题描述】:

我有一个这样的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 _)

【问题讨论】:

    标签: scala akka akka-stream


    【解决方案1】:

    获取Future[List[Color]]

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

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

    colorSource.runForeach(println)
    

    【讨论】:

    • 如何将值从它传递到另一个方法?
    • Sink.foreach(println) 不起作用。返回expected Procedure[NotInferedT], actual: Unit
    猜你喜欢
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    相关资源
    最近更新 更多