是否有可能从Akka Streams Flow中生成多个元素

问题描述 投票:0回答:1

比方说,我有一个字符串“ 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],这很有意义,因为流必须恰好具有一个输出。

是否有Akka Streams机制来解决该问题?

scala akka akka-stream
1个回答
0
投票

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

Source.single("only one element")
  .mapConcat { string =>
    string.split(" ")
  }
  .map(*do something for each word*)
© www.soinside.com 2019 - 2024. All rights reserved.