【发布时间】:2015-12-23 11:51:33
【问题描述】:
也许我忽略了运算符的简单组合(或者完全是 RxJava 的固有取消行为)。但假设我有一个热门的 observable selectedItem 可以平面映射到 RxJava-JDBC 查询。
@Test
public void testFlatMapBackPressure() {
Database db = null; //assign db
BehaviorSubject<Integer> selectedItem = BehaviorSubject.create();
//can I backpressure the queries so only the latest one is running, and any previous is cancelled?
Observable<List<Integer>> currentValues = selectedItem.flatMap(i -> db.select("SELECT VALUE FROM MY_TABLE WHERE ID =?")
.parameter(i)
.getAs(Integer.class)
.toList());
}
我怎样才能对flatMap() 运算符进行反压,以便它始终只执行最新的查询(并取消任何以前的查询)。我有点想要一个背压的 flatMap 运算符来做这样的事情,其中“X”表示取消先前的查询
有没有办法做到这一点?或者它已经完成了,我只是没有看到它?
【问题讨论】:
标签: java reactive-programming rx-java