我已经从sqlbrite db中进行了选择,但是由于某种原因,请不要调用onComplete。
我的代码:
fun BriteDatabase.selectDayTimelineRecord(dayTimestamp: Long) =
createQuery(table_timeline, selectWDayRecords(dayTimestamp)).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.mapToOneOrDefault(StatItem(dayTimestamp, 0)) { cursor -> cursor.mapTimelineStat() }然后我尝试变体:
所以我想用T表来观察.
有人知道我做错了什么吗?
发布于 2019-02-17 05:19:42
我不太熟悉SQLBrite,但是createQuery应该不断地通知数据库更改。如果您只想获得一次值,那么可以使用take()运算符。
fun BriteDatabase.selectDayTimelineRecord(dayTimestamp: Long) =
createQuery(table_timeline, selectWDayRecords(dayTimestamp))
.mapToOneOrDefault(StatItem(dayTimestamp, 0)) { cursor -> cursor.mapTimelineStat() }
.take(1)那么您的concatMap实现就可以工作了。
https://stackoverflow.com/questions/54724983
复制相似问题