first<T, D>(predicate?: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>
Возвращает первое попавшееся значение в потоке и завершается.
!> Является аналогом выражения take(1)
за исключением того, что first
выкидывает ошибку EmptyError
в случае если поток оказался пустым.
-
predicate
ОпциональноФункция вызываемая каждый раз при новом значении для проверки условия.
-
defaultValue
ОпциональноЕсли указано значение по умолчанию, в случае если поток пустой, будет использоваться оно, если же не указано выкинет ошибку.
import { fromEvent } from 'rxjs';
import { first } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
first()
);
result.subscribe(x => console.log(x));
import { fromEvent } from 'rxjs';
import { first } from 'rxjs/operators';
const clicks = fromEvent(document, 'click');
const result = clicks.pipe(
first(ev => ev.target.tagName === 'DIV')
);
result.subscribe(x => console.log(x));
- 📰 Официальная документация: first
- 📁 Исходный код: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/first.ts