Spec-Zone.ru › ReactiveX

ElementAt

выпускает только элемент n, выпущенный Observable
Открыть интерактивную диаграмму на rxmarbles.com

Оператор ElementAt извлекает элемент, расположенный в указанной позиции в последовательности элементов, выпущенных исходным Observable, и выпускает этот элемент в качестве единственного своего выпуска.

См. также

  • First
  • Last
  • Введение в Rx: ElementAt и ElementAtUntilChanged
  • RxMarbles: elementAt

Информация, специфичная для языка

RxGroovy elementAt elementAtOrDefault

elementAt

RxGroovy реализует этот оператор как elementAt. Передайте elementAt значение индекса, начинающегося с нуля, и он выпустит единственный элемент из последовательности исходного Observable, соответствующий этому значению индекса (например, если вы передадите значение индекса 5, elementAt выпустит шестой элемент, выпущенный исходным Observable).

Если вы передадите отрицательное значение индекса или если исходный Observable выпустит меньше index value + 1 элементов, elementAt выбросит IndexOutOfBoundsException.

  • Javadoc: elementAt(int)
elementAtOrDefault

RxGroovy также реализует оператор elementAtOrDefault. Он отличается от elementAt тем, что не будет выбрасывать исключение, если исходный Observable выпустит меньше index value + 1 элементов. Вместо этого он выпустит элемент «по умолчанию», который вы указываете с дополнительным параметром к elementAtOrDefault.

Если вы передадите отрицательное значение индекса, elementAt выбросит IndexOutOfBoundsException.

  • Javadoc: elementAtOrDefault(int,T)

elementAt и elementAtOrDefault по умолчанию не работают ни с одним конкретным Планировщиком.

RxJava 1․x elementAt elementAtOrDefault

elementAt

RxGroovy реализует этот оператор как elementAt. Передайте elementAt значение индекса, начинающегося с нуля, и он выпустит единственный элемент из последовательности исходного Observable, соответствующий этому значению индекса (например, если вы передадите значение индекса 5, elementAt выпустит шестой элемент, выпущенный исходным Observable).

Если вы передадите отрицательное значение индекса или если исходный Observable выпустит меньше index value + 1 элементов, elementAt выбросит IndexOutOfBoundsException.

  • Javadoc: elementAt(int)
elementAtOrDefault

RxGroovy также реализует оператор elementAtOrDefault. Он отличается от elementAt тем, что не будет выбрасывать исключение, если исходный Observable выпустит меньше index value + 1 элементов. Вместо этого он выпустит элемент «по умолчанию», который вы указываете с дополнительным параметром к elementAtOrDefault.

Если вы передадите отрицательное значение индекса, elementAt выбросит IndexOutOfBoundsException.

  • Javadoc: elementAtOrDefault(int,T)

elementAt и elementAtOrDefault по умолчанию не работают ни с одним конкретным Планировщиком.

RxJS elementAt

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.js
  • rx.all.compat.js
  • rx.aggregates.js

Они требуют одного из следующих распределений:

  • rx.js
  • rx.compat.js
  • rx.lite.js
  • rx.lite.compat.js

© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/elementat

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API