作为 Flow
观察满足查询条件的第一个对象的更改。 如果查询所表示的第一个对象发生任何更改,该流程将发出SingleQueryChange事件。 该流程将无限期地继续运行,直到取消。
如果订阅空查询,则流将发出 PendingObject 事件以表明查询为空,然后为第一个元素生成 InitialObject 事件。 在非空列表上,它将开始为其第一个元素发出 InitialObject 事件。
订阅并观察到 InitialObject 事件后,如果修改了第一个元素,则会观察到连续的 UpdatedObject 实例。 如果元素被删除,DeletedObject 则会产生异常。
如果第一个元素被替换为新值,则新的头部会产生一个 InitialObject,并且其所有更改都会跟随 UpdatedObject。
┌───────┐
┌─────┤ Start ├───┐
│ └───────┘ ├────┐──────────┬─────┐
┌───────▼───────┐ ┌───────▼────┴──┐ ┌─────┴─────▼───┐
│ PendingObject ├─► InitialObject │ │ UpdatedObject │
└───────────────┘ └───────▲───────┘ └───────────┬───┘
│ ┌───────────────┐ │
└──► DeletedObject ◄──┘
└───────────────┘
内容已复制到剪贴板
变更计算将在 RealmConfiguration.Builder.notificationDispatcher 表示的线程上运行。
该流具有Channel.BUFFERED的内部缓冲区,但如果使用者未能及时使用元素,则协程作用域将被取消,并引发 CancellationException。
返回
表示因运行此查询而对 RealmObject 或 EmbeddedRealmObject 进行更改的流。
参数
键 路径
可选属性列表,用于定义何时对对象进行更改将导致发出更改。 可以使用点语法定义嵌套属性,例如 parent.child.name
。 如果未提供键路径,则对所有顶级属性和 4 级以下的嵌套属性的更改都将trigger更改。
抛出异常
如果提供的键路径无效。