Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Observable不调用onComplete(sqlbrite-MapTooneOrderFault)_Database_Rx Java_Rx Java2_Sqlbrite - Fatal编程技术网

Database Observable不调用onComplete(sqlbrite-MapTooneOrderFault)

Database Observable不调用onComplete(sqlbrite-MapTooneOrderFault),database,rx-java,rx-java2,sqlbrite,Database,Rx Java,Rx Java2,Sqlbrite,我已经从sqlbrite db中选择了,但由于某些原因,observable不调用onComplete 我的代码: fun BriteDatabase.selectDayTimelineRecord(dayTimestamp: Long) = createQuery(table_timeline, selectWDayRecords(dayTimestamp)).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread

我已经从sqlbrite db中选择了,但由于某些原因,observable不调用onComplete

我的代码:

fun BriteDatabase.selectDayTimelineRecord(dayTimestamp: Long) =
createQuery(table_timeline, selectWDayRecords(dayTimestamp)).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
        .mapToOneOrDefault(StatItem(dayTimestamp, 0)) { cursor -> cursor.mapTimelineStat() }
然后我尝试:

工作,但我需要保持秩序,所以我不能使用平面图

可观察的。从可观察的0..6.2平面图{ db.selectDayTimelineRecordstimestampOfDayInWeekit }.buffer7.subscribeOnSchedulers.io.observeOnAndroidSchedulers.mainThread.subscribe{}

不工作不交付结果,但我不知道为什么

可观察的。从可观察的0..6{ db.selectDayTimelineRecordstimestampOfDayInWeekit }.buffer7.subscribeOnSchedulers.io.observeOnAndroidSchedulers.mainThread.subscribe{}

因此,我想观察的列表的T


有人知道我做错了什么吗?

我对SQLBrite不太熟悉,但createQuery应该一直通知数据库更改。如果只想获得一次值,则可以使用take运算符

fun BriteDatabase.selectDayTimelineRecord(dayTimestamp: Long) =
    createQuery(table_timeline, selectWDayRecords(dayTimestamp))
        .mapToOneOrDefault(StatItem(dayTimestamp, 0)) { cursor -> cursor.mapTimelineStat() }
        .take(1)
然后您的concatMap实现就可以工作了