defaultIfEmpty

Emits a given value if the source Observable completes without emitting any next value, otherwise mirrors the source Observable.

defaultIfEmpty<T, R>(defaultValue: R = null): OperatorFunction<T, T | R>

Parameters

defaultValue

Optional. Default is null.

The default value used if the source Observable is empty.

Returns

OperatorFunction<T, T | R>: An Observable that emits either the specified defaultValue if the source Observable emits no items, or the values emitted by the source Observable.

Description

If the source Observable turns out to be empty, then this operator will emit a default value.

defaultIfEmpty emits the values emitted by the source Observable or a specified default value if the source Observable is empty (completes without having emitted any next value).

Example

If no clicks happen in 5 seconds, then emit "no clicks"

import { fromEvent } from 'rxjs'; import { defaultIfEmpty, takeUntil } from 'rxjs/operators'; const clicks = fromEvent(document, 'click'); const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000))); const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks')); result.subscribe(x => console.log(x));

See Also