문제

나는 당신이 관찰 할 때 방금 깨달았습니다 movedTo 일부에 대한 이벤트 cursor, 이벤트는 실제로 변경된 문서에 대해서만 트리거됩니다. 상대적인 결과 세트의 위치는 인덱스뿐만 아니라. 예를 들어, 결과 문서 세트가 먼저 [1, 2, 3], 그런 다음 변경됩니다 [3, 1, 2], 이벤트는 세 번째 문서에 대해서만 트리거됩니다. 효율성 관점에서 합리적으로 들리지만 문서는 전혀 명확하지 않습니다 (봐 여기):

MoveTTO (문서, FromIndex, ToIndex, 이전)

문서는 결과 세트에서의 위치를 fromIndex 에게 toIndex(ID가있는 문서 앞에 있습니다 before). 현재 내용은 문서입니다.

나에게 "결과 세트에서의 위치가 바뀌 었습니다.

  • 하나는 색인에서 나옵니다 0 색인 1, ...
  • 둘은 색인에서 나옵니다 1 색인 2, 그리고 ...
  • 3은 색인에서 나옵니다 2 에게 0.

내가 달성하고 싶은 것은 a를 관찰하는 것입니다 cursor 그리고 index 각 문서의 변경 여부. 이것을 구현하는 방법에 대한 대략적인 아이디어가 있지만,이 문제를 해결할 수있는 간단한 (최적입니까?)와 "유성"방법이 있는지 궁금합니다.

도움이 되었습니까?

해결책

이 동작은 실제로 성능 관점에서만 완벽하게 이해됩니다. 그런 식으로 생각하십시오 :

당신이 사용할 때 observe 방법, 당신은 수집 (서버 또는 최소값). 그래서 당신이받는 각 콜백은 단일 수정 인스턴스입니다. 수집. 객체 중 하나를 다른 곳으로 옮겨서 순서를 변경하면 컬렉션을 변경합니다. 한 번, 따라서이 이벤트를 위해 콜백을 하나만 받고 싶습니다.

단일 이벤트에 대해 42 번 알리고 싶지 않습니다!

 


 

모든 이동 된 개체에 대한 알림을 곱하는 가장 쉬운 방법은 콜백 내에서 수동으로 반복하는 것입니다. 항목이 위치 A에서 위치 B로 이동하면 A와 B 사이에있는 모든 객체도 이동했다는 것을 알고 있습니다. 따라서 각각을 조정 해야하는 경우 전체 목록을 통해 A에서 B로 이동하는 루프 에서이 작업을 수행하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top