asフロー

抽象 fun asFlow(keyPaths : List < string > ? = null): フロー<シングルクエリ変更<t>>

クエリ条件を満たす最初のオブジェクトに対する変更を監視します。 フローは、クエリによって表される最初のオブジェクトに対するすべての変更に対して シングルクエリ変更 イベントを発行します。 フローは、キャンセルされるまで無期限に実行され続けます。

空のクエリでサブスクライブされた場合、フローは PendingObject イベント を発行してクエリが空であることをシグナルし、最初の要素の InitialObject イベントを生成します。 空でないリストでは、最初の要素に対して 初期オブジェクト イベントの発行が開始されます。

サブスクライブされ、 初期オブジェクト イベントが監視されると、最初の要素が変更されると、連続的な UpdateObject インスタンスが監視されます。 要素が削除されると、 DeletedObject が中断されます。

最初の要素が新しい値に置き換えられると、 初期オブジェクト は新しいヘッドに対して生成され、そのすべての変更に対して Updated Object が追跡されます。

                  ┌───────┐
┌─────┤ Start ├───┐
│ └───────┘ ├────┐──────────┬─────┐
┌───────▼───────┐ ┌───────▼────┴──┐ ┌─────┴─────▼───┐
│ PendingObject ├─► InitialObject │ │ UpdatedObject │
└───────────────┘ └───────▲───────┘ └───────────┬───┘
│ ┌───────────────┐ │
└──► DeletedObject ◄──┘
└───────────────┘

変更計算は、RealmConfiguration.Builder.notificationDispatcher で表されるスレッドで実行されます。

フローには.BUEREDの内部バッファがありますが、コンシューマーが要素を一定時間ずつ消費するのに失敗した場合、コルーチン スコープは CancelException でキャンセルされます。

Return

このクエリの実行の結果発生する RealmObject または 埋め込み RealmObject への変更を表すフロー。

パラメーター

キー パス

オブジェクトへの変更によって変更が発行されるタイミングを定義するプロパティの任意のリスト。 ネストされたプロパティは、ドット構文を使用して定義できます。例: parent.child.name 。 キーパスが指定されていない場合は、すべての最上位プロパティとネストされたプロパティ 4 の変更によって変更がtriggerされます。

スロー

無効なキーパスが指定された場合。