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