【发布时间】:2015-03-24 19:46:36
【问题描述】:
在 android 应用程序中我有这种情况:
用 observable 收听我的 editText:
WidgetObservable.text(myEditText, false)
.map { it.text().toString() }
.debounce(800, TimeUnit.MILLISECONDS, Schedulers.io())
然后我需要使用 observable 发出的字符串发送网络请求:
.flatMap { networkObservable.subscribeOn(Schedulers.io()) }
我的问题是:编写这些网络结果的无限流的最佳方法是什么。 由 UI 处理的错误。
使用 AppObservable.bindActivity() 包装器完成取消订阅
我最终将 materialize() 操作符附加到网络 observable,然后像这样处理它:
.subscribe{
when (it.getKind()) {
Kind.OnNext -> text.setText(it.getValue())
Kind.OnError -> text.setText(it.getThrowable().getMessage())
}
}
你知道更好的方法吗,还是很好? 至少它有效。
附:另一个有用的案例是 Refresh button clicks flatMap'ed to network calls
【问题讨论】: