SkipLast
подавляет последние n элементов, испускаемых Observable
Вы можете проигнорировать последние n элементов, испускаемых Observable, и обращать внимание только на элементы, которые появляются перед ними, изменив Observable с помощью оператора SkipLast.
См. также
- Last
- Skip
- SkipUntil
- SkipWhile
- Take
- TakeLast
- TakeUntil
- TakeWhile
- Введение в Rx: SkipLast и TakeLast
- RxMarbles:
skipLast
Информация, специфичная для языка
RxGroovy skipLast
Вы можете пропустить последние n элементов, испускаемых Observable, и обращать внимание только на те, что предшествуют им, изменив Observable с помощью оператора skipLast(n). Обратите внимание, что механизм реализации этого отложит испускание любого элемента из исходного Observable до тех пор, пока не будут испущены еще n элементов этим Observable.
Этот вариант оператора skipLast по умолчанию не работает с каким-либо конкретным расписанием.
- Javadoc:
skipLast(int)
Существует также вариант оператора skipLast, который принимает временной интервал вместо количества элементов. Он отбрасывает те элементы, которые испускаются в течение этого конечного интервала существования исходного Observable. Вы задаёте этот интервал, передавая длительность и единицы измерения этой длительности в качестве параметров для оператора skipLast.
Обратите внимание, что механизм реализации этого отложит испускание любого элемента из исходного Observable до тех пор, пока не пройдёт заданный интервал времени с момента его испускания.
Этот вариант оператора skipLast по умолчанию работает с computation расписанием, но вы также можете передать расписание по своему выбору в качестве необязательного третьего параметра.
- Javadoc:
skipLast(long,TimeUnit) - Javadoc:
skipLast(long,TimeUnit,Scheduler)
RxJava 1․x skipLast
Вы можете проигнорировать последние n элементов, испускаемых Observable, и обращать внимание только на те элементы, которые предшествуют им, изменив Observable с помощью оператора skipLast(n). Обратите внимание, что механизм реализации этого отложит испускание любого элемента из исходного Observable до тех пор, пока не будут испущены ещё n элементов этим Observable.
Этот вариант оператора skipLast по умолчанию не работает с каким-либо конкретным расписанием.
- Javadoc:
skipLast(int)
Существует также вариант оператора skipLast, который принимает временной интервал вместо количества элементов. Он отбрасывает те элементы, которые испускаются в течение этого конечного интервала существования исходного Observable. Вы задаёте этот интервал, передавая длительность и единицы измерения этой длительности в качестве параметров для оператора skipLast.
Обратите внимание, что механизм реализации этого отложит испускание любого элемента из исходного Observable до тех пор, пока не пройдёт заданный интервал времени с момента его испускания.
Этот вариант оператора skipLast по умолчанию работает с computation расписанием, но вы также можете передать расписание по своему выбору в качестве необязательного третьего параметра.
- Javadoc:
skipLast(long,TimeUnit) - Javadoc:
skipLast(long,TimeUnit,Scheduler)
RxJS skipLast skipLastWithTime
Вы можете пропустить последние n элементов, испускаемых Observable, и обращать внимание только на те элементы, что предшествуют им, изменив Observable с помощью оператора skipLast(n). Обратите внимание, что механизм реализации этого отложит испускание любого элемента из исходного Observable до тех пор, пока не будут испущены ещё n элементов этим Observable.
Пример кода
var source = Rx.Observable.range(0, 5)
.skipLast(3);
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); }); Next: 0 Next: 1 Completed
skipLast доступен во всех следующих дистрибутивах:
rx.jsrx.all.jsrx.all.compat.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
Оператор skipLastWithTime принимает временной интервал вместо количества элементов. Он отбрасывает те элементы, которые испускаются в течение этого конечного интервала существования исходного Observable. Вы задаёте этот интервал, передавая количество миллисекунд в качестве параметра оператору skipLastWithTime.
Обратите внимание, что механизм реализации этого отложит испускание любого элемента из исходного Observable до тех пор, пока не пройдёт заданный интервал времени с момента его испускания.
skipLastWithTime по умолчанию работает с timeout расписанием, но вы также можете передать расписание по своему выбору в качестве необязательного второго параметра.
Пример кода
var source = Rx.Observable.timer(0, 1000)
.take(10)
.skipLastWithTime(5000);
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); }); Next: 0 Next: 1 Next: 2 Next: 3 Next: 4 Completed
skipLastWithTime доступен во всех следующих дистрибутивах:
rx.all.jsrx.all.compat.js-
rx.time.js(требуетrx.jsилиrx.compat.js) rx.lite.jsrx.lite.compat.js
RxPHP skipLast
RxPHP реализует этот оператор как skipLast.
Пропускает указанное количество элементов в конце последовательности observable. Этот оператор накапливает очередь, достаточной длины, чтобы сохранить первые `count` элементов. По мере получения дополнительных элементов, элементы берутся с начала очереди и генерируются в результирующей последовательности. Это приводит к задержке элементов.
Пример кода
//from https://github.com/ReactiveX/RxPHP/blob/master/demo/skip/skipLast.php
$observable = Rx\Observable::range(0, 5)
->skipLast(3);
$observable->subscribe($stdoutObserver); Next value: 0 Next value: 1 Complete!
© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/skiplast.html