throwIfEmpty

function stable

If the source observable completes without emitting a value, it will emit an error. The error will be created at that time by the optional errorFactory argument, otherwise, the error will be EmptyError.

throwIfEmpty<T>(errorFactory: () => any = defaultErrorFactory): MonoTypeOperatorFunction<T>

Parameters

errorFactory

Optional. Default is defaultErrorFactory.

A factory function called to produce the error to be thrown when the source observable completes without emitting a value.

Returns

MonoTypeOperatorFunction<T>: A function that returns an Observable that throws an error if the source Observable completed without emitting.

Description

throwIfEmpty marble diagram

Example

import { fromEvent, timer } from 'rxjs';
import { throwIfEmpty, takeUntil } from 'rxjs/operators';

const click$ = fromEvent(document, 'click');

click$.pipe(
  takeUntil(timer(1000)),
  throwIfEmpty(
    () => new Error('the document was not clicked within 1 second')
  ),
)
.subscribe({
  next() { console.log('The button was clicked'); },
  error(err) { console.error(err); }
});

© 2015–2021 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/throwIfEmpty