find

Emite únicamente el primer elemento emitido por el Observable fuente que cumpla una condición

💡 Si se quiere obtener el primer elemento emitido, sin que cumpla ninguna operación, se puede usar el operador firstarrow-up-right

chevron-rightSignaturahashtag

Firma

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

Parámetros

Opcional. El valor por defecto es undefined. Un argumento opcional para determinar el valor del this en la función predicate.

Retorna

OperatorFunction<T, T | undefined>: Un Observable del primer elemento que cumpla la condición.

Descripción

Encuentra el primer valor que cumple una condición y lo emite.

Diagrama de canicas del operador find

find busca el primer elemento del Observable fuente que cumpla la condición especificada en la función predicate y retorna la primera ocurrencia que exista en la fuente. Al contrario que el operador first, la función predicate es obligatoria, y no se emite un error si no se encuentra un valor válido.

Ejemplos

Emite la primera vez que se presiona la tecla X, y se completa el flujo

StackBlitzarrow-up-right

import { find } from "rxjs/operators";
import { fromEvent } from "rxjs";

const key$ = fromEvent<KeyboardEvent>(document, "keydown");

key$.pipe(find(({ code }) => code === "KeyX")).subscribe(console.log);
// Salida: KeyboardEvent {}

Emitir el primer lenguaje de tipo Multiparadigma

Aunque haya más de un lenguaje de tipo multiparadigma, find emite únicamente el primero que encuentra.

StackBlitzarrow-up-right

Si ningún elemento cumple la condición, se emite undefined

StackBlitzarrow-up-right

Ejemplo de la documentación oficial

Encuentra y emite el primer click que ocurra en un elemento DIV

Recursos adicionales

Source codearrow-up-right

Documentación oficial en inglésarrow-up-right

Last updated