클래스: DeduplicatedLoadSubset
정의 위치: packages/db/src/query/subset-dedupe.ts:48
loadSubset 함수를 위한 중복 제거 래퍼입니다. 로드된 데이터를 추적하고 조건자에 부분집합 로직을 적용하여 불필요한 호출을 방지합니다.
매개변수
DeduplicatedLoadSubset의 옵션입니다
매개변수
래핑할 기본 loadSubset 함수입니다
매개변수
loadSubset 호출이 중복 제거될 때 호출되는 선택적 콜백 함수입니다. 요청된 데이터가 진행 중인 요청에 의해 로드되고 있어 호출이 중복 제거된 경우, 진행 중인 요청이 성공적으로 완료되고 데이터가 완전히 로드되면 이 콜백이 호출됩니다. 이 콜백은 쿼리별로 행을 추적해야 할 때 유용합니다. 이 경우 각 쿼리에 대해 어떤 행이 로드되었는지 알아야 하므로 중복 제거된 호출을 무시할 수 없습니다.
예제
const dedupe = new DeduplicatedLoadSubset({ loadSubset: myLoadSubset, onDeduplicate: (opts) => console.log(`Call was deduplicated:`, opts) })
// First call - fetches data
await dedupe.loadSubset({ where: gt(ref('age'), val(10)) })
// Second call - subset of first, returns true immediately
await dedupe.loadSubset({ where: gt(ref('age'), val(20)) })
// Clear state to start fresh
dedupe.reset()
생성자
생성자
new DeduplicatedLoadSubset(opts): DeduplicatedLoadSubset;
정의 위치: packages/db/src/query/subset-dedupe.ts:78
매개변수
opts
loadSubset
(options) => true | Promise<void>
onDeduplicate?
(options) => void
반환값
DeduplicatedLoadSubset
메서드
loadSubset()
loadSubset(options): true | Promise<void>;
정의 위치: packages/db/src/query/subset-dedupe.ts:96
이전에 로드된 조건자와 진행 중인 요청을 기반으로 자동 중복 제거를 수행하면서 데이터의 부분집합을 로드합니다.
이 메서드는 자동으로 바인딩되므로 this 컨텍스트를 잃지 않고 콜백으로 안전하게 전달할 수 있습니다(예: 동기화 구성의 loadSubset: dedupe.loadSubset).
매개변수
options
조건자 옵션(where, orderBy, limit)입니다
반환값
true | Promise<void>
데이터가 이미 로드되었으면 true이고, 데이터가 로드될 때 해결되는 Promise입니다
reset()
reset(): void;
정의 위치: packages/db/src/query/subset-dedupe.ts:227
모든 추적 상태를 초기화합니다. 로드된 조건자와 진행 중인 호출의 기록을 지웁니다. 예를 들어 기본 데이터 저장소를 지운 후 새로 시작하려는 경우 사용합니다.
참고: 진행 중인 요청은 계속 완료되지만 초기화 후 추적 상태를 업데이트하지 않습니다. 이렇게 하면 이전 요청이 삭제된 상태를 다시 채우는 것을 방지할 수 있습니다.
반환값
void