Katakanlah saya memiliki string "langit berwarna biru" dan di dalam aliran saya membaginya menjadi beberapa elemen yang ingin saya sebarkan ke bawah grafik.

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

Dalam kode ini Flow memiliki tipe Flow[String, Seq[String, NotUsed], yang masuk akal karena Arus harus memiliki tepat satu keluaran.

Apakah ada mekanisme Akka Streams untuk menyelesaikan masalah itu?

1
syforce 28 Mei 2020, 00:01

1 menjawab

Jawaban Terbaik

Jika saya mengerti dengan benar, Anda ingin setiap potongan string menjadi elemen individual dalam aliran. Ini dapat dilakukan menggunakan mapConcat:

Source.single("only one element")
  .mapConcat { string =>
    string.split(" ")
  }
  .map(*do something for each word*)
1
gregghz 27 Mei 2020, 21:13