是否可以从 Akka Streams Flow 生成多个元素

Is it possible to generate multiple elements from Akka Streams Flow

假设我有一个字符串 "sky is blue" 并且在内部流中我将它分成几个元素我想沿着图表传播。

Source.single("only one element")
  .via(Flow.fromFunction(string => string.split(" ").toSeq))
  .map(*do something for each word*)

在此代码中,Flow 的类型为 Flow[String, Seq[String, NotUsed],这是有道理的,因为流必须恰好有一个输出。

A​​kka Streams有什么机制可以解决这个问题吗?

如果我理解正确的话,您希望字符串的每个块都是流中的一个单独元素。这可以使用 mapConcat 来完成:

Source.single("only one element")
  .mapConcat { string =>
    string.split(" ")
  }
  .map(*do something for each word*)