takeWhile

signature: takeWhile(predicate: function(value, index): boolean, inclusive?: boolean): Observable

Emit 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.


Ultimate RxJS

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 )

Additional Resources


๐Ÿ“ Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/takeWhile.ts

Last updated