This is a small and incoherent collection of RxJS operators we commonly use across our projects.
npm add @zeit-dev/rxjs-util
or
yarn add @zeit-dev/rxjs-util
Combine several boolean observables, and return true
if
all latest values are true
, false
otherwise.
allTrue(of(false), of(true)).subscribe((x) => console.log(x))
// => false
This is basically just filter(x => !!x)
with the
added benefit of collapsing an input type of T | undefined
to just T
of(true, false, '', 0, null, undefined, true, 'a', 1).pipe(filterTruthy()).subscribe((x) => console.log(x));
// => true, true, 'a', 1
Just a shortcut for map(x => !x)
of(true).pipe(flip()).subscribe((x) => console.log(x));
// => false
This is a debug tool, that tap
s into the observable stream,
and uses console.log
to output each event, and console.error
for
errors. To identify the log output, you can specify a log category/tag:
interval(1000).pipe(log('Here')).subscribe()
// => Here 1, Here 2, Here 3
Casts observable to Observable<void>
.
Replays the last value every n miliseconds until the next value arrives. Stops replaying when predicate evaluates to false.
Helper to return to the Angular zone (NgZone
), when an event arrives.
Useful if you have external async sources.
// inject ngZone: NgZone
from(someExternalPromise).pipe(returnToZone(ngZone))
SwitchMap
to an inner observable and carry the current value into the output.
Same as
switchMap((x) => innerObservable.pipe(map((y) => [x, y])))
Same as takeWhile
but emits the last event as well.