Vielleicht übersehe ich eine einfache Kombination von Operatoren (oder ein inhärentes Aufhebungsverhalten von RxJava insgesamt). Aber angenommen, ich habe eine heiße beobachtbare selectedItem
, Flatmap zu einer RxJava-JDBC-Abfrage.RxJava- Wie man eine Flatmap() zurückdrückt
@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());
}
Wie kann ich den Gegendruck flatMap()
Betreiber so wird es immer nur die letzte Abfrage ausführen (und kündigen, jede vorherige). Ich mag ein bisschen ein Gegendruck flatMap Operator, so etwas zu tun, wo die „X“
Gibt es eine Möglichkeit, eine Löschung der vorherigen Abfrage zeigt dies zu erreichen? Oder kann es schon geschehen und ich sehe es einfach nicht?