所以我想我会尝试Room
一个小方案项目。
我跟随了Florina Muntenescu的示例项目:
android-architecture-components
我特别关注课程:UserActivity.kt,UserViewModel.kt,UserDao.kt
UserViewModel#updateUserName()
返回Completable,必须订阅返回onComplete
或onError
当我尝试将等效的viewModel.updateUserName(userName)
放入RxBindings
链时。
如果我订阅通常,我会在Disposable!
中将onNext
传递给最终"DISPOSED"
.subscribe
问题是这不会发出错误,因此永远不会知道是否存在问题
我如何调整下面的代码,以便最终的.subscribe
会返回正确的事件?
RxTextView.textChanges(editText)
.debounce(250L, TimeUnit.MILLISECONDS, schedulers.main)
.subscribeOn(schedulers.main)
.observeOn(schedulers.disk)
.map({ name ->
viewModel.updateUserName(name)
.subscribe(
{ Timber.d(“Success”) },
{ error -> Timber.d(error, “something went wrong”)) })
})
.observeOn(schedulers.main)
.subscribe(
{ Timber.d("name changed $it}") },
{ Timber.e(it, "name error") })
提前致谢
微米。
答案 0 :(得分:0)
转过来
.map({ name ->
viewModel.updateUserName(name)
.subscribe(
{ Timber.d(“Success”) },
{ error -> Timber.d(error, “something went wrong”)) })
})
到此
.flatMapCompletable name ->
viewModel.updateUserName(name))