ElementAt
выпускает только элемент n, выпущенный Observable
Оператор ElementAt извлекает элемент, расположенный в указанной позиции в последовательности элементов, выпущенных исходным Observable, и выпускает этот элемент в качестве единственного своего выпуска.
См. также
Информация, специфичная для языка
RxGroovy elementAt elementAtOrDefault
RxGroovy реализует этот оператор как elementAt. Передайте elementAt значение индекса, начинающегося с нуля, и он выпустит единственный элемент из последовательности исходного Observable, соответствующий этому значению индекса (например, если вы передадите значение индекса 5, elementAt выпустит шестой элемент, выпущенный исходным Observable).
Если вы передадите отрицательное значение индекса или если исходный Observable выпустит меньше index
value + 1 элементов, elementAt выбросит IndexOutOfBoundsException.
- Javadoc:
elementAt(int)
RxGroovy также реализует оператор elementAtOrDefault. Он отличается от elementAt тем, что не будет выбрасывать исключение, если исходный Observable выпустит меньше index value + 1 элементов. Вместо этого он выпустит элемент «по умолчанию», который вы указываете с дополнительным параметром к elementAtOrDefault.
Если вы передадите отрицательное значение индекса, elementAt выбросит IndexOutOfBoundsException.
- Javadoc:
elementAtOrDefault(int,T)
elementAt и elementAtOrDefault по умолчанию не работают ни с одним конкретным Планировщиком.
RxJava 1․x elementAt elementAtOrDefault
RxGroovy реализует этот оператор как elementAt. Передайте elementAt значение индекса, начинающегося с нуля, и он выпустит единственный элемент из последовательности исходного Observable, соответствующий этому значению индекса (например, если вы передадите значение индекса 5, elementAt выпустит шестой элемент, выпущенный исходным Observable).
Если вы передадите отрицательное значение индекса или если исходный Observable выпустит меньше index
value + 1 элементов, elementAt выбросит IndexOutOfBoundsException.
- Javadoc:
elementAt(int)
RxGroovy также реализует оператор elementAtOrDefault. Он отличается от elementAt тем, что не будет выбрасывать исключение, если исходный Observable выпустит меньше index value + 1 элементов. Вместо этого он выпустит элемент «по умолчанию», который вы указываете с дополнительным параметром к elementAtOrDefault.
Если вы передадите отрицательное значение индекса, elementAt выбросит IndexOutOfBoundsException.
- Javadoc:
elementAtOrDefault(int,T)
elementAt и elementAtOrDefault по умолчанию не работают ни с одним конкретным Планировщиком.
RxJS elementAt
RxJS реализует этот оператор как elementAt. Передайте elementAt значение индекса, начинающееся с нуля, и он выпустит единственный элемент из последовательности исходного Observable, соответствующий этому значению индекса (например, если вы передадите значение индекса 5, elementAt выпустит шестой элемент, выпущенный исходным Observable).
Если в исходной последовательности нет элемента с указанным значением индекса, elementAt издаст уведомление onError: «Argument out of range»
Пример кода
var source = Rx.Observable.fromArray([1,2,3,4])
.elementAt(1);
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); }); Next: 2 Completed
Вы можете необязательно передать значение по умолчанию, которое elementAt выпустит, если исходный Observable не выпустит никаких значений:
Пример кода
var source = Rx.Observable.fromArray([])
.element({defaultValue: 23});
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); }); Next: 23 Completed
elementAt присутствует в каждом из следующих распределений:
rx.all.jsrx.all.compat.jsrx.aggregates.js
Они требуют одного из следующих распределений:
rx.jsrx.compat.jsrx.lite.jsrx.lite.compat.js
© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/elementat