Sink.seq

Collect values emitted from the stream into a collection.

Sink operators

Signature

def seq[T]: Sink[T, Future[immutable.Seq[T]]]

Description

Collect values emitted from the stream into a collection, the collection is available through a Future CompletionStage or which completes when the stream completes. Note that the collection is bounded to Int.MaxValue Integer.MAX_VALUE, if more element are emitted the sink will cancel the stream

Example

Given a stream of numbers we can collect the numbers into a collection with the seq operator

Scala
val source = Source(1 to 3)
val result = source.runWith(Sink.seq[Int])
val seq = result.futureValue
seq.foreach(println)
// will print
// 1
// 2
// 3
Java
Source<Integer, NotUsed> ints = Source.from(Arrays.asList(1, 2, 3));
CompletionStage<List<Integer>> result = ints.runWith(Sink.seq(), system);
result.thenAccept(list -> list.forEach(System.out::println));
// 1
// 2
// 3

Reactive Streams semantics

cancels If too many values are collected

Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.