isEmpty

Emite false si el Observable emite cualquier valor, o emite true si el Observable se completa sin emitir ningún valor

Signatura

Firma

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

Parámetros

No recibe ningún parámetro.

Retorna

OperatorFunction<T, boolean>: Un Observable de valor booleano indicando si el Observable estaba vacío o no.

Descripción

Indica si un Observable emite algún valor o no.

isEmpty transforma un Observable que emite valores en un Observable que emite un solo valor booleano representando si el Observable fuente emite o no valores. En cuanto el Observable fuente emita un valor, isEmpty emitirá false y se completará. Si el Observable fuente se completa sin haber emitido ningún valor, isEmpty emitirá true y se completará.

Se podría lograr un efecto similar con el operador count, pero isEmpty puede emitir el valor false antes.

Ejemplos

StackBlitz

Emite false para un Observable que no está vacío

import { of } from "rxjs";
import { isEmpty } from "rxjs/operators";

const word$ = of("No", "está", "vacío");

word$.pipe(isEmpty()).subscribe(console.log);
// Salida: false

Emite true para Observables vacíos

StackBlitz

import { EMPTY, of } from "rxjs";
import { isEmpty } from "rxjs/operators";

const empty$ = EMPTY;
const anotherEmpty$ = of();

empty$.pipe(isEmpty()).subscribe(console.log);
// Salida: true

anotherEmpty$.pipe(isEmpty()).subscribe(console.log);
// Salida: true

Ejemplo de la documentación oficial

Emite false para un Sujeto que no está vacío

    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();

    // Salida: a, false, b, c

Recursos adicionales

Documentación oficial en inglés

Last updated