기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
구독한 엔터티의 이벤트 반복 실행
AllSubscriptionEvents()
를 사용하여 구독한 엔터티(앱 구독 영역에 있는 엔터티)에 대한 이벤트 목록을 가져옵니다. 함수의 서명은 다음과 같습니다.
Result<SubscriptionChangeList> AllSubscriptionEvents(Transaction& txn)
그런 후 다음 예제와 같이 루프를 사용하여 엔터티를 반복합니다.
예
WEAVERRUNTIME_TRY(Api::SubscriptionChangeList subscriptionChangeList, Api::AllSubscriptionEvents(transaction)); for (const Api::SubscriptionEvent& event : subscriptionChangeList.changes) { Api::Entity entity = event.entity; Api::ChangeListAction action = event.action; switch (action) { case Api::ChangeListAction::None: // insert code to handle the event break; case Api::ChangeListAction::Remove: // insert code to handle the event break; case Api::ChangeListAction::Add: // insert code to handle the event break; case Api::ChangeListAction::Update: // insert code to handle the event break; case Api::ChangeListAction::Reject: // insert code to handle the event break; } }
이벤트 유형
None
- 엔터티가 해당 영역에 있고 위치 및 필드 데이터가 수정되지 않았습니다.Remove
- 엔터티가 영역에서 제거되었습니다.Add
- 엔터티가 영역에 추가되었습니다.Update
- 엔터티가 해당 영역에 있으며 수정되었습니다.Reject
- 앱이 해당 영역에서 엔터티를 제거하지 못했습니다.
참고
Reject
이벤트가 발생한 경우 앱은 다음 틱에서 전송을 다시 시도합니다.