官术网_书友最值得收藏!

  • Learning RxJava
  • Thomas Nield
  • 193字
  • 2021-07-02 22:22:57

elementAt()

You can get a specific emission by its index specified by a Long, starting at 0. After that item is found and emitted, onComplete() will be called and the subscription will be disposed of.

If you want to get the fourth emission coming from an Observable, you can do it as shown in the following code snippet:

import io.reactivex.Observable;

public class Launcher {
public static void main(String[] args) {

Observable.just("Alpha", "Beta", "Zeta", "Eta", "Gamma",
"Delta")
.elementAt(3)
.subscribe(i -> System.out.println("RECEIVED: " + i));
}
}

The output of the following code snippet is as follows:

RECEIVED: Eta

You may not have noticed, but elementAt() returns Maybe<T> instead of Observable<T>. This is because it will yield one emission, but if there are fewer emissions than the sought index, it will be empty.

There are other flavors of elementAt(), such as elementAtOrError(), which return a Single and will emit an error if an element at that index is not found. singleElement() will turn an Observable into a Maybe, but will produce an error if there is anything beyond one element. Finally, firstElement() and lastElement() will yield, maybe emitting the first or last emission, respectively.

主站蜘蛛池模板: 古浪县| 东丰县| 泸定县| 吉安市| 府谷县| 鄂温| 大悟县| 柳江县| 永定县| 垫江县| 丘北县| 高州市| 吉安市| 白玉县| 济源市| 霍山县| 泰州市| 九江县| 曲周县| 嘉定区| 汶川县| 扶风县| 云梦县| 米林县| 虞城县| 永善县| 靖安县| 依兰县| 安义县| 沭阳县| 昌都县| 光泽县| 伊宁市| 普宁市| 青河县| 宁津县| 华容县| 石柱| 宁津县| 绥宁县| 阿鲁科尔沁旗|