takeWhile
Pass elements downstream as long as a predicate function returns true and then complete.
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
-
source
Source(1 to 10).takeWhile(_ < 3).runForeach(println) // prints // 1 // 2 - Java
-
source
Source.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
2.0.0-M4