takeWhile
signature: takeWhile(predicate: function(value, index): boolean, inclusive?: boolean): Observable
takeWhile(predicate: function(value, index): boolean, inclusive?: boolean): ObservableEmit values until provided expression is false.
๐ก When the optional inclusive parameter is set to true it will also emit the first item that didn't pass the predicate.
Examples
Example 1: Take values under limit
( StackBlitz | jsBin | jsFiddle )
// RxJS v6+
import { of } from 'rxjs';
import { takeWhile } from 'rxjs/operators';
//emit 1,2,3,4,5
const source$ = of(1, 2, 3, 4, 5);
//allow values until value from source is greater than 4, then complete
source$
.pipe(takeWhile(val => val <= 4))
// log: 1,2,3,4
.subscribe(val => console.log(val));Example 2: (v6.4+) takeWhile with inclusive flag
( StackBlitz )
Example 3: Difference between takeWhile and filter
( StackBlitz | jsBin | jsFiddle )
Related Recipes
Additional Resources
takeWhile ๐ฐ - Official docs
takeWhile - In Depth Dev Reference
Completing a stream with takeWhile ๐ฅ ๐ต - John Linquist
๐ Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/takeWhile.ts
Last updated