Also dachte ich, ich würde Room
auf einem kleinen Nebenprojekt ausprobieren. Ich folgte Florina Muntenescu des Beispielprojekt: android-architecture-componentsAndroid Architektur Komponenten Room ViewModel CompleteableFormAction
ich besonderes Augenmerk auf Klassen bezahle: UserActivity.kt, UserViewModel.kt, UserDao.kt
UserViewModel#updateUserName()
gibt einen Completable und hat auf die Rückkehr onComplete
oder onError
abonniert werden, wenn Ich versuche, mein Äquivalent von viewModel.updateUserName(userName)
in eine RxBindings
Kette zu setzen. Wenn ich ihn abonnieren normalerweise Ich bin ein Disposable!
in die onNext
mit einem Wert von "DISPOSED"
in der letzten .subscribe
Das Problem ist, dass dies nicht ein Fehler emittieren und somit kann nie wissen, wenn es eine ist Ausgabe
Wie könnte ich den unten stehenden Code anpassen, so dass der endgültige .subscribe
die richtigen Ereignisse zurückgeben würde?
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") })
Vielen Dank im Voraus
M.
Das brillant gearbeitet! – Mannox
ich nie von diesem Betreiber wusste, begann ich, wie etwas zu schreiben. '.flatMap ({name -> var res = Observable.empty() vM updateUserName (name) .subscribe ({ res = beobachtbare .just ("Erfolg") }, {Fehler -> Res = Observable.Fehler (Fehler) }) Ergebnis}) ' –
Mannox