为了账号安全,请及时绑定邮箱和手机立即绑定

NetworkBoundResource 未按预期工作

NetworkBoundResource 未按预期工作

翻阅古今 2022-08-17 12:33:11
我有一些有线问题。当我第一次订阅时,它会进行网络调用,并将数据保存到数据库中,但永远不会执行,并且没有引发任何错误。loadFromDb()为什么会发生这种情况?    Flowable<Resource<List<List<DataSource>>>> getBoundResource(List<String> parentId) {    return new RxNetworkBoundResource<List<List<DataSource>>,            ContainerResponse>() {        @Override        void saveCallResult(@NonNull List<ContainerResponse> data) {            for (ContainerResponse item : data) {                // Saves data to database                List<DataSource> items = item.items;                containerDao.insert(items);            }        }        @Override        protected Flowable<List<List<DataSource>>> loadFromDb() {            return Flowable.just(parentId).flatMapIterable(d -> d)                    .flatMap(s -> containerDao.loadContainerByParentIdRx(s))                    .distinct()                    .doOnNext(data -> {                        // I am able to get data here                    })                    .toList() // I'm not able to get data after toList()                    .toFlowable()                    .doOnNext(data -> {                        // Nothing here                    });        }
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

请注意,仅在其上游完成后才会发出。医生.toList()


此处的问题很可能是由于此代码返回了 未完成的 :Flowable


containerDao.loadContainerByParentIdRx(s)

如果这永远不会完成,那么结果也不会完成,也不会发出任何东西。FlowableflatMaptoList()


如果只查找数据库一次,则一个选项是将返回类型更改为 或 。例如,如果切换到 ,则可以执行以下操作:SingleMaybeMaybe


    @Override

    protected Flowable<List<List<DataSource>>> loadFromDb() {

        return Flowable.just(parentId).flatMapIterable(d -> d)

                .flatMapMaybe(s -> containerDao.loadContainerByParentIdRx(s))

                .distinct()

                .doOnNext(data -> {

                    // I am able to get data here

                })

                .toList() // You should now get this as well.

                .toFlowable()

                .doOnNext(data -> {

                    // Nothing here

                });

    }


查看完整回答
反对 回复 2022-08-17
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号