挑战:我希望有一个存储库可以生成查询(Query<T>
),调用者可以为其指定调度程序,并以其想要的方式进行操作,反过来也自动更新,因为更改事件通过总线在内部传播(PublishSubject,除非有更好的方法吗?请告诉我)。
调度程序来自调用者并且不会继承&#34;这一点非常重要。直接从存储库;因为一些查询将被组合,因此不能来自不同的线程。基本上,我希望能够为整个可观察链指定调度程序,并且可以在那里有多个查询可观察对象。
一般来说 - 这很好...... 但 一旦将更改事件引入图片中,事情就变得非常混乱,真正快速。根据我的理解,这是因为主题将在与调用者相同的线程上传播其事件。这导致Query<T>
上面的subject.onNext(..)
根据调用Observable<Query<T>>
的位置在不同的调度程序上工作,这就是挑战。
如何通过PublishSub强制ChangeEvents在与它创建的interface Query<T>{
T findFirst();
}
Repository repo = new Repository();
repo.createQuery(IceCream.class) //Returns Observable<Query<IceCream>>
.map(it.findFirst()) //Returns IceCream
.map(it -> it.getName()) //Returns "Magnum Choco"
.subscribeOn(Schedulers.computation())
.unsubscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(it -> Timber.d("Got IceCream with name: %s",it))
相同的调度程序上观察?没有明确指定.observeOn()?
我对接下来的挑战采取不同的方法,但从我的实验来看,这似乎就是&#34;对&#34;这样做的方式。如果是另一种方式,请赐教我。
ng-model
我感谢你的智慧和帮助。对不起冰淇淋的渴望。