美文网首页
数据库使用RxJava操作符

数据库使用RxJava操作符

作者: 半生黑豆 | 来源:发表于2019-11-25 15:23 被阅读0次

Maybe
@Query(“SELECT * FROM Users WHERE id = :userId”)
Maybe<User> getUserById(String userId);

发生了什么呢?
1.若数据库中没有用户,那么Maybe就会被complete(RxJava中概念)
2.若数据库中有一个用户,那么Maybe就会触发onSuccess方法并且被complete
3.若数据库中用户信息在Maybe被complete之后被更新了,啥都不会发生

Single
@Query(“SELECT * FROM Users WHERE id = :userId”)
Single<User> getUserById(String userId);

就会发生这些事情:
1.若数据库中没有用户,那么Single就会触发onError(EmptyResultSetException.class)
2.若数据库中有一个用户,那么Single就会触发onSuccess
3.若数据库中用户信息在Single.onComplete调用之后被更新了,啥都不会发生,因为数据流已经完成了

Flowable
@Query(“SELECT * FROM Users WHERE id = :userId”)
Flowable<User> getUserById(String userId);

Flowable会这样运行:
1.若数据库中没有用户,那么Flowable就不会发射事件,既不运行onNext,也不运行onError
2.若数据库中有一个用户,那么Flowable就会触发onNext
3.若数据库中用户信息被更新了,Flowable就会自动发射事件,允许你根据更新的数据来更新UI界面

相关文章

  • RxJava

    其它文章 RxJava操作符大全 1、RxJava之一——一次性学会使用RxJava RxJava简单的使用和使用...

  • RxJava 操作符第二波

    RxJava操作符第二波啦,上篇RxJava 操作符第一波和本篇都只是简单介绍rxjava操作符的使用,有哪里写的...

  • Rxjava 操作符 2019-01-25

    title: Rxjava 操作符 参考:这是一份全面 & 详细 的RxJava操作符 使用攻略https://m...

  • RxJava操作符系列四

    RxJava操作符系列传送门 RxJava操作符源码RxJava操作符系列一RxJava操作符系列二RxJava操...

  • RxJava操作符系列五

    RxJava操作符系列传送门 RxJava操作符源码RxJava操作符系列一RxJava操作符系列二RxJava操...

  • RxJava操作符系列六

    RxJava操作符系列传送门 RxJava操作符源码RxJava操作符系列一RxJava操作符系列二RxJava操...

  • RxJava操作符系列三

    RxJava操作符系列传送门 RxJava操作符源码RxJava操作符系列一RxJava操作符系列二 前言 在之前...

  • Rx - compose()操作符

    转自: 【Android】勤用RXJava compose操作符消除重复代码 使用Rxjava的compose()...

  • 【RxJava】- 连接操作符源码分析

    目录 【RxJava】- 创建操作符源码分析【RxJava】- 变换操作符源码分析【RxJava】- 过滤操作符源...

  • 【RxJava】- RxLifecycle解决RxJava内存泄

    目录 【RxJava】- 创建操作符源码分析【RxJava】- 变换操作符源码分析【RxJava】- 过滤操作符源...

网友评论

      本文标题:数据库使用RxJava操作符

      本文链接:https://www.haomeiwen.com/subject/dvayfctx.html