我是 RxJava 的新手,我想知道如何创建可配置的 Observable?让我们想象一下,我可以像这样编写一个数据库到数据库的传输:
srcDb.getObservable(Bean.class)
.sql(selectSql)
.params(selectParams)
.subscribe(
trgDb.getSubscriber(Bean.class)
.sql(insertSql)
);
我已经可以用订阅者做到这一点,但我如何才能以与 Observable 本身相同的方式获得一些小配置?
最佳答案
有两种方法可以做到这一点:
选项 #1:让您自己的对象进行配置,然后使用 execute()
、query()
或 toObservable()
切换域:
srcDb
.find(Bean.class)
.sql(selectSql)
.params(selectParams)
.execute()
.subscribe(
trgDb.getSubscriber(Bean.class)
.sql(insertSql)
);
选项 #2:使用 .compose()
重用常用操作:
srcDb
.getObservable(Bean.class)
.compose(addSQLParameters())
.subscribe(
trgDb.getSubscriber(Bean.class)
.sql(insertSql)
);
<T> Transformer<T,T> addSQLParameters() {
return obs -> obs.sql(selectSql).params(selectParams);
}
我建议您使用选项 #1,因为它可以更好地管理您的代码部分。
关于java - Rx-Java:创建可配置的 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39836149/