방식Flow

추상 fun asFlow(keyPaths: List<문자열>? = null): Flow<SingleQueryChange<t>>

쿼리 조건을 충족하는 첫 번째 객체에 대한 변경 사항을 관찰합니다. 흐름은 쿼리가 나타내는 첫 번째 객체가 변경될 때 SingleQueryChange 이벤트를 내보냅니다. 흐름은 취소될 때까지 무기한으로 계속 실행됩니다.

빈 쿼리를 구독하면 흐름은 쿼리가 비어 있음을 알리는 PendingObject 이벤트를 발생한 다음 첫 번째 요소에 대해 InitialObject 이벤트를 생성합니다. 비어 있지 않은 목록에서는 첫 번째 요소에 대한 InitialObject 이벤트를 방출하기 시작합니다.

구독하고 InitialObject 이벤트가 관찰되면 첫 번째 요소가 수정되면 순차적인 UpdatedObject 인스턴스가 관찰됩니다. 요소가 삭제되면 DeletedObject가 생성됩니다.

첫 번째 요소가 새 값으로 대체되면 초기 객체는 새 헤드 에 대해 양보되고 모든 변경 사항에 대해 업데이트된 객체가 따릅니다.

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

변경 계산은 RealmConfiguration.Builder.notificationDispatcher가 나타내는 스레드에서 실행 됩니다.

흐름에는 Channel.BUFFERED 의 내부 버퍼가 있지만 소비자가 적시에 요소를 소비하지 못하면 코루틴 범위가 CancellationException과 함께 취소됩니다.

Return

이 쿼리 를 실행 한 결과 RealmObject 또는 EmbeddedRealmObject에 대한 변경 사항을 나타내는 흐름입니다.

매개변수

경로

객체를 변경하면 변경 사항이 내보내지는 시기를 정의하는 속성의 선택적 목록입니다. 중첩된 속성은 점 구문을 사용하여 정의할 수 있습니다. parent.child.name. 키 경로가 제공되지 않은 경우 모든 최상위 속성과 중첩된 속성을 4 수준 아래로 변경하면 변경 사항이 trigger 됩니다.

스로우

잘못된 키 경로가 제공된 경우.