Rxjava之map()的運用

前段時間一直在看Rxjava方面的博客,終於找到了一篇個人認爲入門最詳細的博客——《給 Android 開發者的 RxJava 詳解》作者扔物線。
網址:http://gank.io/post/560e15be2dca930e00da1083
這大神講的非常詳細,然而智商有限,我看了好幾遍才略懂一二。所以打算寫寫博客以便以後複習。
本文的例子採用retrofit和Rxjava結合,獲取手機號碼歸屬地。具體可以看我前面的一篇博客,本文只對獲取的結果進行講解。
如果不採用map,那麼代碼是這樣寫的:

 phone.getHaoMa(meditview.getText().toString(), key)
                        .subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(new Subscriber<PhoneNumInfo>() {
                            @Override
                            public void onCompleted() {

                            }

                            @Override
                            public void onError(Throwable e) {

                            }

                            @Override
                            public void onNext(PhoneNumInfo phoneNumInfo) {
                                mtext.setText(phoneNumInfo.getResult().getCity());
                            }
                        });

可知通過返回的photoNumInfo結果獲取號碼城市信息。
如果採用map(),代碼如下:

 phone.getHaoMa(meditview.getText().toString(), key)
                        .map(new Func1<PhoneNumInfo, String>() {
                            @Override
                            public String call(PhoneNumInfo phoneNumInfo) {
                                return phoneNumInfo.getResult().getCity();
                            }
                        })
                        .subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(new Subscriber<String>() {
                            @Override
                            public void onCompleted() {

                            }

                            @Override
                            public void onError(Throwable e) {

                            }

                            @Override
                            public void onNext(String s) {
                            mtext.setText(s);
                            }
                        });

將返回的結果phoneNumInfo通過map直接提取當中的city

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章