您的位置:首页 > 其它

map和flatmap

2016-08-17 10:29 134 查看
map: 对数据做转换,转换后的类型,会在subscribe里面使用。如果转换后的是个observable类型,怎么办?

Observable.just("1").map(new Func1<String, String[]>() {

    @Override

    public String[] call(String s) {

        return new String[]{"2","3"};

    }

}).subscribe(new Action1<String[]>() {

    @Override

    public void call(String[] strings) {

    }

});

flatmap: 转换后必须是个observable类型,这样在subscribe里使用的就是Observable里面的类型。使用retrofit时,查询的结果经常是Observable类型,所以要用flatmap

Observable.just("1").flatMap(new Func1<String, Observable<String>>() {

    @Override

    public Observable<String> call(String s) {

        return Observable.from(new String[]{"2","3"});

    }

}).subscribe(new Action1<String>() {

    @Override

    public void call(String s) {

        

    }
});

用map将一个数转成数组,在subscribe里接收到的也是个数组,它不会一个一个发给你。

用flatmap将一个数转成数组后包装在Observable里,在subscribe里就会一个一个接收到数组里的item
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: