как ... Rxjava текучий процесс на счетчик получения - PullRequest
0 голосов
/ 21 ноября 2018

я получаю текучий от звонка ... теперь я хочу проверить, сколько предметов я получаю, а затем обработать на основе этого.Я знаю из плавного потока, я могу получить единый счет, но я не уверен, как я мог бы связать это Rx способом ..

Ниже не работает ... но я полный нуб к Rx: (

  Flowable<Data> dataFlowable = reporter.findData();

  Long count = dataFlowable
      .count()
      .blockingGet();

    if(count > 0) {
     // do something with the flowable returned
        dataFlowable.map(.....);
    }

или, может быть, я могу сделать следующее:

dataFlowable.toList().map(list -> processList(list));

public void processList(List<Data> list) {

  if(list.size() > 0){
    // do something with list
  }

мысли?

1 Ответ

0 голосов
/ 21 ноября 2018

Если вы хотите продолжить обработку полученных данных после проверки количества, вы можете использовать filter () после toList ():

dataFlowable
    .toList() // returns Single<List<Data>>
    .filter(list -> list.size() > 0) // returns Maybe<List<Data>>
    .map(list -> {
        // only called if Maybe contains data (filter condition is true)
        // do something with list
    });
...