W3cubDocs

/RxJS

isEmpty

function stable

Emits false if the input observable emits any values, or emits true if the input observable completes without emitting any values.

isEmpty<T>(): OperatorFunction<T, boolean>

Parameters

There are no parameters.

Returns

OperatorFunction<T, boolean>: An Observable of a boolean value indicating whether observable was empty or not

Description

Tells whether any values are emitted by an observable

isEmpty marble diagram

isEmpty transforms an Observable that emits values into an Observable that emits a single boolean value representing whether or not any values were emitted by the source Observable. As soon as the source Observable emits a value, isEmpty will emit a false and complete. If the source Observable completes having not emitted anything, isEmpty will emit a true and complete.

A similar effect could be achieved with count, but isEmpty can emit a false value sooner.

Examples

Emit false for a non-empty Observable

import { Subject } from 'rxjs';
import { isEmpty } from 'rxjs/operators';

const source = new Subject<string>();
const result = source.pipe(isEmpty());
source.subscribe(x => console.log(x));
result.subscribe(x => console.log(x));
source.next('a');
source.next('b');
source.next('c');
source.complete();

// Results in:
// a
// false
// b
// c

Emit true for an empty Observable

import { EMPTY } from 'rxjs';
import { isEmpty } from 'rxjs/operators';

const result = EMPTY.pipe(isEmpty());
result.subscribe(x => console.log(x));
// Results in:
// true

See Also

© 2015–2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/isEmpty