DataStorePages
DataStorePages : Pages
Overview
OrderedDataStore에 저장된 항목을 정렬된 순서대로 페이지 단위로 순회할 수 있는 Pages 객체입니다.
OrderedDataStore:GetSortedAsync() 메서드를 통해서만 가져올 수 있으며, Instance.new()로 생성할 수 없습니다. 서버 환경에서만 사용할 수 있습니다.
GetCurrentPage()를 호출하면 현재 페이지의 항목을 배열 형태로 가져올 수 있으며, 각 항목은 다음 필드를 가진 테이블입니다.
key : 항목의 키입니다. 숫자로 저장했더라도 항상 string으로 반환되므로, 필요하면 tonumber()로 변환해 사용합니다.
value : 항목에 저장된 정수 값입니다.
조건에 맞는 항목이 없으면 GetCurrentPage()는 nil이 아닌 빈 테이블을 반환하며, 이때 IsFinished는 true입니다.
IsFinished가 false이면 AdvanceToNextPageAsync()로 다음 페이지를 불러올 수 있으며, 현재 페이지가 마지막 페이지가 되면 IsFinished가 true로 바뀝니다.
주의사항
마지막 페이지에서 AdvanceToNextPageAsync()를 호출하면 오류가 발생합니다. 이때 현재 페이지와 IsFinished는 바뀌지 않습니다.
같은 DataStorePages에서 AdvanceToNextPageAsync()가 진행 중일 때 다시 호출하면, 나중에 호출한 쪽이 즉시 실패하고 현재 페이지는 바뀌지 않습니다. 앞선 호출이 성공, 실패, 시간 초과 중 어떤 방식으로든 끝나면 다시 호출할 수 있습니다.
서로 다른 DataStorePages 객체는 동시에 페이지를 넘겨도 서로 영향을 주지 않습니다.
AdvanceToNextPageAsync()는 GetSortedAsync와 같은 요청 한도를 사용하므로, 한도를 넘으면 즉시 실패할 수 있습니다. pcall로 감싸 호출하는 것이 좋습니다.
페이지를 넘기는 동안 저장소의 항목이 추가되거나 삭제되면 그 변경이 다음 페이지에 반영되어, 같은 항목이 두 번 나오거나 누락될 수 있습니다.
Properties
Methods
Events
See also
OrderedDataStore커스텀 리더보드Last updated