fbpx

Course Content

Total learning: 16 lessons Time: 1 week

Операторы take(), skip(), takeWhile() и skipWhile()

Оператор take() 

Операторы take() и skip() являются фильтрующими операторами.

Давайте рассмотрим принцип работы на примере.

Оператор take() передает подписчику только первые n элементов переданных в качестве аргумента. Как видно из диаграммы, подписчик получит только первые 2 элемента и тут же вызовется метод onComplete().Чтобы использовать оператор take() достаточно вызвать метод take() у Observable и передать необходимое количество элементов которые следует получить подписчику.

Пример работы оператора take()

Оператор skip()

Оператор skip() – работает наоборот, он пропускает первые n элементов.

 

Чтобы использовать оператор skip() достаточно вызвать метод skip() у Observable и передать необходимое количество элементов которые следует пропустить.

Пример работы оператора skip()

 

takeWhile() и skipWhile()

Операторы takeWhile() и skipWhile() похожи на ранее рассмотренные take() и skip(), но отличаются тем, что можно задать некое условие, при котором оператор будет либо передавать подписчику элементы удовлетворяющие условию или наоборот пропускать.

takeWhile()

takeWhile() передает подписчику элементы, пока эти элементы удовлетворяют некому условию переданному в оператор.

 

Обратите внимание, что в примере ниже подписчик получит только первые 3 элемента потому что они меньше 4, и, несмотря на то, что в конце последовательности есть еще числа удовлетворяющие данному условию больше подписчик не получит событий.

 

skipWhile() работает похожим образом с разницей только в том, что он пропускает элементы которые подходят под условие.

Пример работы оператора skipWhile()