Kotlin 如何发出订阅的结果
我有以下情况:Kotlin 如何发出订阅的结果,kotlin,android-room,reactivex,Kotlin,Android Room,Reactivex,我有以下情况: 我正在使用RxKotlin扩展来检测活动按钮中的点击 我正在使用Room在数据库中插入记录 这是与我的活动相关的代码: button.clicks() .flatMap { val list = mutableListOf<Answer>() val date = Date() list.add(Answer("some placeholder
- 我正在使用RxKotlin扩展来检测活动按钮中的点击
- 我正在使用Room在数据库中插入记录
button.clicks()
.flatMap {
val list = mutableListOf<Answer>()
val date = Date()
list.add(Answer("some placeholder info"))
list.add(Answer("Another placeholder info"))
Observable.fromArray(list)
}
.map {
upsertStatusQuestionsViewModel.insertMultipleAnswers(it)
}.subscribe {
// it here is an object Maybe<Answer>
}
按钮。单击()
.平面图{
val list=mutableListOf()
val date=日期()
添加(回答(“某些占位符信息”))
添加(回答(“另一个占位符信息”))
可观察的。fromArray(列表)
}
.地图{
upsertStatusQuestionsViewModel.insertMultipleAnswers(it)
}.订阅{
//这可能是个物体
}
这是ViewModel的代码:
fun insertMultipleAnswers(answers: List<Answer>) = database.answerDao()
.createMultiple(answers.toList())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
fun insertMultipleAnswers(vararg answers: Answer) = database.answerDao()
.createMultiple(answers.toList())
.toObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
fun insertMultipleAnswers(答案:List)=database.answerDao()
.createMultiple(answers.toList())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
我想展示一些关于数据库中插入的答案的信息,因此,我需要在订阅中获取答案对象。但是,我不知道我可以使用哪个操作符来实现订阅中的it对象是class Answer,而不是Maybe
非常感谢你的帮助 如果有人在这方面遇到了问题,解决方案是将Maybe解析为一个Observable,因为Observable实现了ObservableSource,所以我的代码现在是这样的:
upsert_status_questions_confirm.clicks()
.map {
val list = mutableListOf<Answer>()
list.add(Answer("Some placeholder"))
list.add(Answer("Another placeholder"))
list
}.flatMap {
upsertStatusQuestionsViewModel.insertMultipleAnswers(*it.toTypedArray())
}.subscribe({
// Success...
}, {
// Error...
})
如果有人在这方面遇到了困难,解决方案是将Maybe解析为一个可观察的,因为可观察实现了可观察资源,所以我的代码现在是这样的:
upsert_status_questions_confirm.clicks()
.map {
val list = mutableListOf<Answer>()
list.add(Answer("Some placeholder"))
list.add(Answer("Another placeholder"))
list
}.flatMap {
upsertStatusQuestionsViewModel.insertMultipleAnswers(*it.toTypedArray())
}.subscribe({
// Success...
}, {
// Error...
})