想知道继续以下 Rx 链的最佳方法是什么,我需要决定调用 flatmap 还是 switchmap?
Wondering what is the best way to continue the following Rx chain ,where I need to decide to call either flatmap or switchmap?
我有一个基于数据的 Flowable 对象 Flowable<Data>
属性 我需要使用 flatmap
或 switchmap
运算符继续链,我将在哪里调用returns 可流动的方法。
Data(a:boolean, str:String)
return Flowable.defer(
() -> {
final int[] indices = new int[3];
//AtomicBoolean state = new AtomicBoolean(false);
return Flowable.combineLatest(a,b,c,()->{
return Flowable<Data>; })
在这里,在 combineLatest 之后,在我有 Flowable 的地方,我想根据 属性 来决定调用 flatmap() 还是 switchmap()。想知道我该如何继续。
我想到的一件事是,拥有 AtomicBoolean,然后
我可以对 compose() 执行以下传递,但我不确定这是否是正确的方法?
.compose(new SwitchMapWithFlatMap(state.get()))
您可以只使用 combineLatest
参考并有条件地应用您选择的运算符:
return Flowable.defer(() -> {
final int[] indices = new int[3];
//AtomicBoolean state = new AtomicBoolean(false);
Flowable<Data> f = Flowable.combineLatest(a, b, c, (x, y, z) -> {
return Flowable<Data>;
});
if (state.get()) {
return f.flatMap(w -> ... );
}
return f.switchMap(w -> ...);
});
我有一个基于数据的 Flowable 对象 Flowable<Data>
属性 我需要使用 flatmap
或 switchmap
运算符继续链,我将在哪里调用returns 可流动的方法。
Data(a:boolean, str:String)
return Flowable.defer(
() -> {
final int[] indices = new int[3];
//AtomicBoolean state = new AtomicBoolean(false);
return Flowable.combineLatest(a,b,c,()->{
return Flowable<Data>; })
在这里,在 combineLatest 之后,在我有 Flowable 的地方,我想根据 属性 来决定调用 flatmap() 还是 switchmap()。想知道我该如何继续。
我想到的一件事是,拥有 AtomicBoolean,然后 我可以对 compose() 执行以下传递,但我不确定这是否是正确的方法?
.compose(new SwitchMapWithFlatMap(state.get()))
您可以只使用 combineLatest
参考并有条件地应用您选择的运算符:
return Flowable.defer(() -> {
final int[] indices = new int[3];
//AtomicBoolean state = new AtomicBoolean(false);
Flowable<Data> f = Flowable.combineLatest(a, b, c, (x, y, z) -> {
return Flowable<Data>;
});
if (state.get()) {
return f.flatMap(w -> ... );
}
return f.switchMap(w -> ...);
});