发出第一个元素或为空后在Observable上调用onComplete

问题描述 投票:0回答:1

我有一个名为myObservable的Observable,我的目标是为发出的第一个元素调用onComplete,当发出空时为OR

所以我正在这样做:

myObservable.firstElement().ignoreElement().subscribe { 
  // OnComplete is called. 
}

因此,我先使用firstElement()将其转换为Maybe,然后使用ignoreElement()将其转换为Completable。我希望在可能调用onCompleteonSuccess时调用onComplete

这是正确的方法吗?

rx-java rx-java2
1个回答
0
投票

我不确定是否了解您,但是您可以根据需要使用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处调用。

© www.soinside.com 2019 - 2024. All rights reserved.