RxJava日常,周六懒癌症发作了,啊,控制不住了,就让我躺在这沙发上一动不动吧。
FlatMap
打开后场盖牌,启动强势转换装置,以上。
这玩意可以把上游的冰霜魔法强势转换为火焰魔法。
Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
emitter.onNext(1);
emitter.onNext(2);
emitter.onNext(3);
}
}).flatMap(new Function<Integer, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(Integer integer) throws Exception {
final List<String> list = new ArrayList<>();
for (int i = 0; i < 3; i++) {
list.add("I am value " + integer);
}
return Observable.fromIterable(list).delay(10,TimeUnit.MILLISECONDS);
}
}).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.d(TAG, s);
}
});
就是这么用,就是这么的强势。
兄弟concatMap
- 用法相同
- 区别,上面那个家伙是无序的,而这家伙是严格按顺序来的。
bserveOn(xxxxxxx)
- 线程切换装置,用了它主线程子线程来回切换,畅游UI。
- 用法,不管想用的时候就用就好了。
- 参数,上一章说的都能用。
Over,方圆几里