RxJava,在链接两个可观察对象之前在观察者线程中执行代码

我使用的是RxJava和RxAndroid,我想结合两个observable但在两者之间需要更新UI,所以我必须在到达用户之前在主线程中执行代码。

一种解决方案,而不是flatmapping(这是一个公认的术语?)两个可观察的事件,只是在更新UI之后调用订户中的下一个observable,但我觉得应该有一个更优雅的解决方案,如:

myObservable
    .map(new Func1<Object, Object>() {
        @Override
        public Object call(Object object) {
            /* do stuff on the main thread */
            return object;
        }
    })
    .flatMap(new Func1<Object, Observable<OtherObject>>() {
        @Override
        public Observable<OtherObject> call(Object o) {
            return new MyOtherObservable(o);
        }
    })
    .subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread());

当然,可能地图不是我需要在这里使用的运营商。 那么,是否有运营商或更好的方式来实现这一目标? 或者我错过了观察者应该如何工作的观点?


Rxjava有一个doOnNext操作符,它就是你正在寻找的。

链接地址: http://www.djcxy.com/p/84543.html

上一篇: RxJava, execute code in the observer thread before chaining two observables

下一篇: Flask, blueprints uses celery task and got cycle import