rxjs / 7.5.5 / api / operators / throwifempty.html /

throwIfEmpty

function stable operator

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 () => any

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

Throw an error if the document wasn't clicked within 1 second

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

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 document was clicked');
  },
  error(err) {
    console.error(err.message);
  }
});

© 2015–2022 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