Можно ли сгенерировать несколько элементов из Akka Streams Flow - PullRequest
1 голос
/ 28 мая 2020

Допустим, у меня есть строка «небо голубое», и внутри потока я делю ее на несколько элементов, которые я хотел бы распространить вниз по графику.

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 для решения этой проблемы?

1 Ответ

1 голос
/ 28 мая 2020

Если я правильно понимаю, вы хотите, чтобы каждый фрагмент строки был отдельным элементом в потоке. Это можно сделать с помощью mapConcat:

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