android - 在 Kotlin 中使用 Retrofit 将 Rx 应用转换为 lambda
问题描述
我不熟悉在 Kotlin 中使用 lambda 表达式。我在 Kotlin 中使用 Rx apply 和 Retrofit 成功地进行了网络调用,但 IDE 让我感到我的代码可以转换为 lambda。你能用下面的代码给我一些想法吗?
disposable = publishSubject
.debounce(300, TimeUnit.MILLISECONDS)
.switchMap(object: Function<String, Observable<ArrayList<Contact>>> {
override fun apply(t: String): Observable<ArrayList<Contact>> {
return apiService.getContactList("", t)
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object: DisposableObserver<ArrayList<Contact>>() {
override fun onNext(t: ArrayList<Contact>) {
adapter?.addItem(t)
}
override fun onError(e: Throwable) {
Toast.makeText(this@MainActivity, e.message, Toast.LENGTH_SHORT).show()
}
override fun onComplete() {
}
})
解决方案
推荐阅读
- bash - 在 Docker 容器中定期运行任务,而不会在无限循环中出现取消问题
- flutter - 如何在 Fluter 中清除表单上的 TextFormField?
- database - 适用于 Mac 的 Oracle 数据库快捷版
- javascript - 某些自有视频上的 YouTube 播放器 API 错误 150
- c# - 如何在 Unity 2019.4 中使用网络系统
- apache-kafka - 我可以在kafka中指定一个监听器来与zookeeper通信吗
- javascript - 如何从其他 tsx 文件访问 tsx 文件
- c - 使用原始指针访问 sfr P1 上的数据
- wordpress - 我的翻译产品的 Wordpress 没有更多类别
- javascript - 如何在 JavaScript 中使用对象转换数组?