作为Flow

乐趣 <t : BaseRealmObject> t.asFlow(keyPaths : List < String > ? = null): Flow<ObjectChange<t>>

观察 Realm 对象的更改。 订阅后,该流程将发出一个InitialObject ,然后在对象每次发生更改时发出UpdatedObject 。 如果观察到的对象已从 Realm 中删除,则流程将发出DeletedObject ,然后完成,否则将继续运行直到取消。

变更计算将在Configuration.notificationDispatcher表示的线程上执行。

该流具有Channel.BUFFERED的内部缓冲区,但如果使用者未能及时使用元素,则协程作用域将被取消,并引发CancellationException

返回

表示对象更改的流。

参数

路径

可选属性列表,用于定义何时对对象进行更改将导致发出更改。 可以使用点语法定义嵌套属性,例如 parent.child.name 。 通配符*可用于捕获给定级别的所有属性,例如 child.**.* 。 如果未提供键路径,则对所有顶级属性和 4 以下嵌套属性的更改都将trigger更改。

抛出异常

如果通过写事务(write transaction)( 写入 ) 在活动 RealmObject EmbeddedRealmObject 上调用或迁移中的DynamicRealmObject ( 迁移 )。

如果提供的键路径无效。