RxJs - take и takeLast

Reading time ~1 minute

Методы take() и takeLast() в общем очень схожи с методами first() и last(). С тем лишь отличием, что первые два могут возвращать не просто - самое первое или самое последнее событие потока; они могут возвращать указанное количество событий.

Метод take()

Подключение - import { take } from ‘rxjs/operators’;

Метод take() принимает в качестве аргумента число - количество событий потока, которые нужно вернуть с момента старта потока.

Например:

import { take } from 'rxjs/operators';
import { timer } from 'rxjs';

const source = timer(0, 1000);
const result = source.pipe(take(10));

result.subscribe(response => console.log(response));

… очевидно, что этот код вернет первые десять событий из потока source -> 0,1,2,3,4,5,6,7,8,9.

Метод takeLast()

Подключение - import { takeLast } from ‘rxjs/operators’;

В противоположность методу take(), метод takeLast() возвратит заданное количество последних событий потока.

Важный момент - метод takeLast() вернет события только после того, как поток завершится.

Пример:

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

const source = from([0,1,2,3,4,5,6,7,8,9]);
const result = source.pipe(takeLast(4));

result.subscribe(response => console.log(response));

… этот код вернет последние четыре события потока source -> 6,7,8,9.


Ссылки:

RxJs - map

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

RxJs - from

Published on September 02, 2019

RxJs - first и last

Published on August 29, 2019