The ElementAt operator pulls an item located at a specified index location in the sequence of items emitted by the source Observable and emits that item as its own sole emission.
ElementAt
elementAt
nth
TBD
elementAt elementAtOrDefault
RxGroovy implements this operator as elementAt. Pass elementAt a zero-based index value and it will emit the solitary item from the source Observable’s sequence that matches that index value (for example, if you pass the index value 5, elementAt will emit the sixth item emitted by the source Observable).
If you pass in a negative index value, or if the source Observable emits fewer than index value + 1 items, elementAt will throw an IndexOutOfBoundsException.
index value + 1
IndexOutOfBoundsException
elementAt(int)
RxGroovy also implements the elementAtOrDefault operator. It differs from elementAt in that it will not throw an exception if the source Observable emits fewer than index value + 1 items. Instead, it will emit a “default” item that you specify with an additional parameter to elementAtOrDefault.
elementAtOrDefault
If you pass in a negative index value, elementAt will throw an IndexOutOfBoundsException.
elementAtOrDefault(int,T)
elementAt and elementAtOrDefault do not by default operate on any particular Scheduler.
RxJS implements this operator as elementAt. Pass elementAt a zero-based index value and it will emit the solitary item from the source Observable’s sequence that matches that index value (for example, if you pass the index value 5, elementAt will emit the sixth item emitted by the source Observable).
If there is no element in the source sequence with the index value you specify, elementAt will issue an onError notification: “Argument out of range”
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
You may optionally pass in a default value that elementAt will emit if the source Observable emits no values:
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 is found in each of the following distributions:
rx.all.js
rx.all.compat.js
rx.aggregates.js
They require one of the following distributions:
rx.js
rx.compat.js
rx.lite.js
rx.lite.compat.js
ElementAt ElementAtOrDefault
element_at element_at_or_default