空的可观察订阅,但下一个未调用



我想要一个不做任何事情的可观察量,除了在订阅时,观察者的onNext回调被调用。 我想我发现使用 Observable.empty() 是这样的,但以下内容不会导致调用观察者的 onNext 回调:

Observable<Void> emptyObservable = Observable.empty();
emptyObservable.subscribe(passedinObserver);

passedInObserver 被定义为:

Observer<Void> passedinObserver = new Observer<Void> {
        @Override public void onCompleted() {
        }
        @Override public void onError(Throwable e) {
        }
        @Override public void onNext(Void aVoid) {
            Log.d("onNext called");
        }
};
您可以使用

Observable.just(null)或任何值,因为无论如何您都会摄取该值。但是,当值通过可观察序列时,您似乎希望执行其他工作,因此您可以使用doOnNext()

Observable.range(1, 10)
.doOnNext(v -> Log.d("onNext called"))
.map(v -> v * v)
.subscribe(System.out::println);
onNext不会被

调用,onCompleted这种类型的Observable被调用。

其他答案的替代,由于empty只调用onCompleted而不调用onNext,也许您只想在onCompleted而不是onNext中完成工作?

尝试Observable.just(...) .它将返回一个值,从而调用.onNext(...)

相关内容

  • 没有找到相关文章

最新更新