takeWhile

Pass elements downstream as long as a predicate function returns true and then complete.

Simple operators

Signature

Source.takeWhileSource.takeWhile Flow.takeWhileFlow.takeWhile

Description

Pass elements downstream as long as a predicate function returns true and then complete. The element for which the predicate returns false is not emitted.

Example

Scala
sourceSource(1 to 10).takeWhile(_ < 3).runForeach(println)
// prints
// 1
// 2
Java
sourceSource.from(Arrays.asList(1, 2, 3, 4, 5))
    .takeWhile(i -> i < 3)
    .runForeach(System.out::println, system);
// this will print:
// 1
// 2

Reactive Streams semantics

emits while the predicate is true and until the first false result

backpressures when downstream backpressures

completes when predicate returned false or upstream completes