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...
            })