当前位置: 首页 > 知识库问答 >
问题:

不调用onComplete(sqlbrite-maptooneordefault)

裴昊阳
2023-03-14

我已经从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() }

Observable.Fromiterable(0..6).FlatMap{db.selectDayTimelineRecords(timestampOfDayInWeek(it))}.buffer(7).subscribeon(schedules.io()).Observeon(AndroidSchedules.Mainthread().subscribe{}

不工作(没有交付结果,但我不知道为什么)

Observable.Fromiterable(0..6).ConcatMap{db.selectDayTimelineRecords(timestampOfDayInWeek(it))}.buffer(7).subscribeon(schedules.io()).Observeon(AndroidSchedules.MainThread().subscribe{}

结果我要观察到T...

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

共有1个答案

淳于博
2023-03-14

我对SQLBrite不是很熟悉,但是createquery应该一直通知数据库更改。如果只想获取一次值,那么可以使用take()运算符。

fun BriteDatabase.selectDayTimelineRecord(dayTimestamp: Long) =
    createQuery(table_timeline, selectWDayRecords(dayTimestamp))
        .mapToOneOrDefault(StatItem(dayTimestamp, 0)) { cursor -> cursor.mapTimelineStat() }
        .take(1)

然后您的concatmap实现就可以工作了。

 类似资料:
  • onComplete: Function 在动画结束时触发此回调函数。 TweenMax.to('.box', 2, { x: 500, onComplete:function(){ ... } }); onComplete适用于TweenMaxTweenLite onComplete的参数 onComplete 示例 body { backg

  • onComplete: Function 在时间轴结束时触发此方法。 new TimelineMax({onComplete: myFunction}); onComplete适用于TimelineMaxTimelineLite onComplete的参数 onComplete 示例 .box { width:50px; height:50px; border-rad

  • Updates the handle with a callback to execute when iteration is completed. Signature AsyncHandle.onComplete = function(callback) { /*...*/ } AsyncHandle.onComplete = function onComplete(callback) {

  • 我正在尝试使用改型和rxjava 2进行WebService调用。我在探索使用RxJava2的两种不同方法。问题是,当我使用可观察的,但不使用可流动的时,我得到了响应。使用Flowable时,日志没有打印出来。我试图调试它,但它没有进入下一步或完成中或错误中。仅执行订阅上的。 1) 使用observable作为返回类型 2)使用可流动作为返回类型 静止触点改装api 调用webservice 获取

  • Grails 3.2.9 执行任务后,onComplete方法无法获取hibernate会话。 控制器: 服务: 异常堆栈跟踪 2017-05-23 13:41:29.123[ead 6]错误异步执行错误:无法获取当前Hibernate会话;嵌套的异常是org。冬眠HibernateException:未找到当前线程的会话 组织。springframework。刀。DataAccessResour

  • 问题内容: 我试图在网上找到答案,但是找不到特定于实现的答案。 我可以选择,并进行了大量的业务,我想知道我怎么可以在它们之间进行选择? 我已阅读文档的onComplete和的onSuccess,但我可以从火力地堡文档,看这一个,例如,对于(如一个具体操作的示例操作),他们有时用,有时他们使用。 我怎么知道每种情况下哪个更好?有关系吗?考虑到我想知道每个操作是否成功。 问题答案: 顾名思义,将在任务