В Android App У меня есть этот случай:RxJava бесконечный поток наилучшей практики
Слушайте мой EditText с наблюдаемыми:
WidgetObservable.text(myEditText, false)
.map { it.text().toString() }
.debounce(800, TimeUnit.MILLISECONDS, Schedulers.io())
Тогда мне нужно отправить запрос сети шпагатом, испускаемого наблюдаемым:
.flatMap { networkObservable.subscribeOn(Schedulers.io()) }
Мой вопрос: что является наилучшим возможным способом записи бесконечного потока этих сетевых результатов. Ошибки, обрабатываемые пользовательским интерфейсом.
отписку сделаны с AppObservable.bindActivity() оберткой
Я в конечном итоге прикреплением материализовать оператор() к сети наблюдаемого, а затем обработать его любит:
.subscribe{
when (it.getKind()) {
Kind.OnNext -> text.setText(it.getValue())
Kind.OnError -> text.setText(it.getThrowable().getMessage())
}
}
Вы знаете лучший путь, или его просто хорошо? По крайней мере, он работает.
P.S. другим полезным случаем будет щелчок кнопки Refresh flatMap'ed к сетевым вызовам
Это означает, что мне нужен какой-либо объект-оболочка, содержащий нормальное состояние и состояние ошибки, которое будет испускаться после преобразования flatMap? С точки зрения удобочитаемости и накладных расходов, кажется, мое решение лучше. Нет? –
Вы также можете использовать 'onErrorResumeNext' во внешнем Observable, а не в flatMap. – zsxwing
Спасибо большое! Я понимаю этот подход. Если кто-то знает другие, отправьте новые ответы, пожалуйста! –