zipWith
Combines elements from multiple sources through a combine
function and passes the returned value downstream.
Signature
def zipWith[Out2, Out3](that: Graph[SourceShape[Out2], _])(combine: (Out, Out2) => Out3): Repr[Out3]
def zipWithMat[Out2, Out3, Mat2, Mat3](that: Graph[SourceShape[Out2], Mat2])(combine: (Out, Out2) => Out3)(matF: (Mat, Mat2) => Mat3): ReprMat[Out3, Mat3]
Description
Combines elements from multiple sources through a combine
function and passes the returned value downstream.
emits when all of the inputs have an element available
backpressures when downstream backpressures
completes when any upstream completes
Example
- Scala
-
source
import akka.stream.scaladsl.Source import akka.stream.scaladsl.Sink val sourceCount = Source(List("one", "two", "three")) val sourceFruits = Source(List("apple", "orange", "banana")) sourceCount .zipWith(sourceFruits) { (countStr, fruitName) => s"$countStr $fruitName" } .runWith(Sink.foreach(println)) // this will print 'one apple', 'two orange', 'three banana'
- Java