RxJavaµÄmapÓ÷¨

л¸ßÐÛ / ÎÄ ·¢±íÓÚ2017-02-27 15:31 µÚ´ÎÔĶÁ rxjava map,rxjava
mapµÄ×÷Ó㺿ÉÒÔ½«Ò»ÖÖÊý¾ÝÀàÐÍ£¬×ª»»³ÉÁíÒ»ÖÖÊý¾ÝÀàÐÍ¡£
µã»÷ʼþdoSomeWork´¥·¢
doSomeWork(){
    getObservable()
            //µÚÒ»²½£º×¼±¸Ô´Êý¾Ý
            .subscribeOn(Schedulers.io())
            //ͨ¹ýmap·½·¨£¬¿ÉÒÔ½«Ô´Êý¾Ýת»»³ÉÄ¿±êÊý¾Ý¡£½«List<ApiUser>ת»»³ÉList<User>
            .map(Function<List<ApiUser>, List<User>>() {
                List<User> apply(List<ApiUser> apiUsers) Exception {
                    //¾ßÌåµÄת»»·½Ê½£¬×îºóreturnÄ¿±êÊý¾Ý
                    //½«List<ApiUser>ת»»³ÉList<User>
                    return List<User>Êý¾Ý;
                }
            })
            .observeOn(AndroidSchedulers.())
            //µÃµ½Ä¿±êÊý¾ÝÁË£¬ÒªÔõô´¦Àí 
            .subscribe(getObserver());
}
//Ô­Êý¾ÝµÄ»ñÈ¡
private Observable<List<ApiUser>> getObservable(){
    return Observable.create(new ObservableOnSubscribe<List<ApiUser>>() {
        @Override
        public void subscribe(ObservableEmitter<List<ApiUser>> e) throws Exception {
            if(!e.isDisposed()){
                //ÔÚonNext·½·¨ÖУ¬½«Ô­Êý¾Ý¸ø¡°·¢É䡱³öÈ¥
                e.onNext(Ô­Êý¾ÝList<ApiUser>);
                
                Èç¹û²»µ÷ÓÃonComplete()·½·¨£¬ÄÇô¹Û²ìÕßµÄonComplete·½·¨ÊDz»»á±»µ÷ÓõÄ
                e.onComplete();
            }
        }
    });
}
private Observer<List<User>> getObserver(){
    return new Observer<List<User>>() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.e("map","    onSubscribe " + d.isDisposed());
        }
        @Override
        public void onNext(List<User> users) {
            Ä¿±êÊý¾ÝµÄ´¦Àí
        }
        @Override
        public void onError(Throwable e) {
        }
        @Override
        public void onComplete() {
        }
    };
}