RxJs - first и last

Reading time ~1 minute

Метод first()

Принимает на вход поток событий и возвращает первое событие этого потока, после чего завершает свое выполнение. В качестве аргумента может принимать функцию фильтрации.

Подключение first() - import { first } ‘rxjs/operators’

Пример - перехватываем только первый клик на документе, все последующие - игнорируем:

import { fromEvent } from 'fxjs'
import { first } from 'rxjs/operators'

const clicks = fromEvent(document, 'click);
const click = clicks.pipe(first());

click.subscribe(response => console.log(response))

Более интересный пример - возвращаем первое событие потока, которое удовлетворяет условию; после чего прекращаем работу:

import { from } from 'rxjs';
import { first } from 'rxjs/operators'

const source = from([1,2,3,4,5,6,7]);
const result = source.pipe(first(el => el === 3));
result.subscribe(response => console.log(response)); // 3

Метод last()

Противоположность методу first(); принимает на вход поток событий и возвращает последнее событие этого потока; после чего прекращает свою работу.

Хорошие примеры использования last() приведены здесь - https://www.learnrxjs.io/operators/filtering/last.html.


Ссылки:

RxJs - map

Первый "серьезный" метод в моей RxJs-копилке знаний. На самом деле все просто - этот метод получает на вход поток, обрабатывает каждый ev...… Continue reading

RxJs - from

Published on September 02, 2019

RxJs - take и takeLast

Published on August 30, 2019