我正在使用 RxJava,并且Observable
里面有多个项目。我想做的是在第一个项目上运行函数 A,在所有项目上运行函数 B,并在Observable
完成时运行函数 C:
-----1-----2-----3-----|-->
| | | |
run A | | |
| | | |
run B run B run B |
|
run C
有没有用 lambda 函数表达这一点的聪明方法?我已经有以下解决方案,但它看起来很难看,我怀疑有更好的方法来做到这一点:
observable.subscribe(
new Action1<Item>() {
boolean first = true;
@Override
public void call(Item item) {
if (first) {
runA(item);
first = false;
}
runB(fax1);
}
},
throwable -> {},
() -> runC());