Вопрос по RxJava?

Прочил про RxJava - пишут волшебная штука. Сейчас совершенно непонятно как она работает и зачем - хотя пересмотрел кучу примеров и статей. Так например зачем map, flatmap если все эти преобразования можно сделать в сабскрайбере? И вот в этом примере есть список твитов (Retrofit)- как мне их преобразовывать если в примерах идет Observable.just(1, 2, 3) т.е. в том же .filter на вход приходят 1 потом 2 и 3, а в моем случае сразу приходит список List? т.е. мне его нужно обрабатывать самостоятельно в цикле ? опять же могу уже в блоке subscribe сделать фильтр

Спасибо.
//       @GET("/tweet/?android")
//        public Observable<List<Tweet>> getTweetRx(); - получаю список твитов (название, текст)

api
            .getTweetRx()
            .subscribeOn(Schedulers.newThread()) //отдаем новый тред для работы в background
            .observeOn(AndroidSchedulers.mainThread()) //говорим, что обсервить хотим в main thread

            .subscribe(new Action1<List<Tweet>>() {
                @Override
                public void call(List<Tweet> tweets) {
                    Log.d("!!!!", tweets.get(0).getName());
                    final ListView myList = (ListView) findViewById(R.id.tweet_list);
                    myList.setAdapter(new MyListAdapter(tweets, MainActivity.this));
                }
            }, new Action1<Throwable>() {
                @Override
                public void call(Throwable throwable) {
                    Log.d("!!!ERROR", "" + throwable);
                }
            });


UPD: по flatMap нашел тут stackoverflow.com/questions/21890338/when-should-o...
  • Вопрос задан
  • 2912 просмотров
Пригласить эксперта
Ответы на вопрос 1
retor4i
@retor4i
Junior Java Developer
Сам тоже долго разбирался)
Но как я понял: map, flat map производят действия с поступающей информацией в observer. Тут можно их трансформировать и прочее.
Filter может отфильтровать данные которые получит субскрайбер от обсервер. Just выберет только то что задано. First, Last выбирают только первый и соответственно последний пришедшие элементы.
From создает обсервер из (итерируемых данных) в методе map или foreach можно перебрать каждое входящее значение и что то с ним сделать.
а в методе субскрайбера onNext() ты уже делаешь что то с полученными данными.

Простите за ошибки) Я только учусь) Может и не совсем правильно объяснил)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы