W3cubDocs

/RxJS

single

function stable

Returns an Observable that emits the single item emitted by the source Observable that matches a specified predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no items, notify of an IllegalArgumentException or NoSuchElementException respectively. If the source Observable emits items but none match the specified predicate then undefined is emitted.

single<T>(predicate?: (value: T, index: number, source: Observable<T>) => boolean): MonoTypeOperatorFunction<T>

Parameters

predicate

Optional. Default is undefined.

A predicate function to evaluate items emitted by the source Observable.

Returns

MonoTypeOperatorFunction<T>: An Observable that emits the single item emitted by the source Observable that matches the predicate or undefined when no items match.

Throws

EmptyError Delivers an EmptyError to the Observer's error callback if the Observable completes before any next notification was sent.

Description

Like first, but emit with error notification if there is more than one value. single marble diagram

Example

emits 'error'

import { range } from 'rxjs';
import { single } from 'rxjs/operators';

const numbers = range(1,5).pipe(single());
numbers.subscribe(x => console.log('never get called'), e => console.log('error'));
// result
// 'error'

emits 'undefined'

import { range } from 'rxjs';
import { single } from 'rxjs/operators';

const numbers = range(1,5).pipe(single(x => x === 10));
numbers.subscribe(x => console.log(x));
// result
// 'undefined'

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/single