我有一个名为myObservable
的Observable,我的目标是为发出的第一个元素调用onComplete
,当发出空时为OR。
所以我正在这样做:
myObservable.firstElement().ignoreElement().subscribe {
// OnComplete is called.
}
因此,我先使用firstElement()
将其转换为Maybe,然后使用ignoreElement()
将其转换为Completable。我希望在可能调用onComplete
或onSuccess
时调用onComplete
。
这是正确的方法吗?
我不确定是否了解您,但是您可以根据需要使用take(1)
。
尝试一下:
Observable.just(1, 2).take(1).subscribe(e -> {
}, e -> {
}, () -> System.out.println("completed when take(1)"));
Observable.empty().subscribe(e -> {
}, e -> {
}, () -> System.out.println("completed when empty"));
onComplete
总是在可观察对象的the end处调用。