Как правильно использовать withIndex с takeUntil, forEachWhile, с RxJava? - PullRequest
0 голосов
/ 28 октября 2019

В моем выражении, даже takeUntil - это истина / ложь, метод подписки генерирует все элементы списка, который должен прекратиться, как только takeUntil верно, верно?

Observable.fromIterable(countryResponseList.withIndex())
  .subscribeOn(Schedulers.io())
  .observeOn(Schedulers.io())
  .takeUntil((index,item) -> item.getId() == currentCountryCodeId)
  .subscribe((index,item) -> run{
     Log.d("items and index", " ${item} and ${index}")
  })

Что мне нужно, чтобыполучить текущий индекс, когда выражения соответствуют (item.getId () == currentCountryCodeId) друг другу, и выражение RxJava должно прекратить продолжение. Я не знаю, как это сделать, любая помощь приветствуется. Я также нашел forEachWhile, подойдет ли эта ситуация?

1 Ответ

0 голосов
/ 31 октября 2019

Я не уверен, что вы хотите прекратить итерацию countryResponseList.withIndex(). Если это так, восходящий поток должен быть запущен в том же потоке с takeUntil.

Надеюсь, что лежащим в основе является то, что вы хотите. Если нет, то как насчет опиши поподробнее?

Observable.fromIterable(countryResponseList.withIndex())
  .takeUntil((index,item) -> item.getId() == currentCountryCodeId)
  .subscribeOn(Schedulers.io())
  .observeOn(Schedulers.io())
  .subscribe((index,item) -> run{
     Log.d("items and index", " ${item} and ${index}")
  })
...