我的代码工作正常没有 startWith
运算符,但是只要我添加它,就只会发出startWith
项,而其余的链不会执行。
这是调用函数:
compositeDisposable.add(
Observable
.just(myUpdateProfileEvent)
.compose(update())
.subscribe({ state.value = it }, { Timber.e(it) })
)
我的变压器:
fun update(): ObservableTransformer<UpdateProfileEvent, ProfileModel> {
return ObservableTransformer {
it.flatMap {
api
.updateUser( … user params …)
.subscribeOn(Schedulers.io())
.doOnNext { saveUser(it) }
.map { ProfileModel.UpdateSuccessful(it) as ProfileModel }
.onErrorReturn { ProfileModel.UpdateError(it) as ProfileModel }
.observeOn(AndroidSchedulers.mainThread())
.startWith { ProfileModel.UpdateInProgress() as ProfileModel } <--- This is the line in question
}
}
如果删除.startWith
行,则一切都按预期执行。
但是,添加.startWith
后,只会发出ProfileModel.UpdateInProgress()
,之后不会发出任何其他内容 - api.updateUser()
等永远不会被执行。
帮助!
由于