rxjs / 7.5.5 / api / index / function / find.html /

find

function stable operator

Emits only the first value emitted by the source Observable that meets some condition.

find<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, T | undefined>

Parameters

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

A function called with each item to test for condition matching.

thisArg any

Optional. Default is undefined.

An optional argument to determine the value of this in the predicate function.

Returns

OperatorFunction<T, T | undefined>: A function that returns an Observable that emits the first item that matches the condition.

Description

Finds the first value that passes some test and emits that.

find marble diagram

find searches for the first item in the source Observable that matches the specified condition embodied by the predicate, and returns the first occurrence in the source. Unlike first, the predicate is required in find, and does not emit an error if a valid value is not found (emits undefined instead).

Example

Find and emit the first click that happens on a DIV element

import { fromEvent, find } from 'rxjs';

const div = document.createElement('div');
div.style.cssText = 'width: 200px; height: 200px; background: #09c;';
document.body.appendChild(div);

const clicks = fromEvent(document, 'click');
const result = clicks.pipe(find(ev => (<HTMLElement>ev.target).tagName === 'DIV'));
result.subscribe(x => console.log(x));

Overloads

find(predicate: BooleanConstructor): OperatorFunction<T, TruthyTypesOf<T>>

Parameters

predicate BooleanConstructor

Returns

OperatorFunction<T, TruthyTypesOf<T>>

find(predicate: (this: A, value: T, index: number, source: Observable<T>) => value is S, thisArg: A): OperatorFunction<T, S | undefined>

Parameters

predicate (this: A, value: T, index: number, source: Observable<T>) => value is S
thisArg A

Returns

OperatorFunction<T, S | undefined>

find(predicate: (value: T, index: number, source: Observable<T>) => value is S): OperatorFunction<T, S | undefined>

Parameters

predicate (value: T, index: number, source: Observable<T>) => value is S

Returns

OperatorFunction<T, S | undefined>

find(predicate: (this: A, value: T, index: number, source: Observable<T>) => boolean, thisArg: A): OperatorFunction<T, T | undefined>

Parameters

predicate (this: A, value: T, index: number, source: Observable<T>) => boolean
thisArg A

Returns

OperatorFunction<T, T | undefined>

find(predicate: (value: T, index: number, source: Observable<T>) => boolean): OperatorFunction<T, T | undefined>

Parameters

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

Returns

OperatorFunction<T, T | undefined>

See Also

© 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/index/function/find