takeWhile

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

Simple operators

Signature

Source.takeWhileSource.takeWhile Source.takeWhileSource.takeWhile Flow.takeWhileFlow.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, unless the overload with inclusive set to true is used, in which case that first failing element is also emitted before completing.

Example

Scala
sourceSource(1 to 10).takeWhile(_ < 3).runForeach(println)
// prints
// 1
// 2
Java
sourceSource.from(List.of(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