是否可以从 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]
,这是有道理的,因为流必须恰好有一个输出。
Akka Streams有什么机制可以解决这个问题吗?
如果我理解正确的话,您希望字符串的每个块都是流中的一个单独元素。这可以使用 mapConcat 来完成:
Source.single("only one element")
.mapConcat { string =>
string.split(" ")
}
.map(*do something for each word*)
假设我有一个字符串 "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有什么机制可以解决这个问题吗?
如果我理解正确的话,您希望字符串的每个块都是流中的一个单独元素。这可以使用 mapConcat 来完成:
Source.single("only one element")
.mapConcat { string =>
string.split(" ")
}
.map(*do something for each word*)