본문으로 건너뛰기

클래스: 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

LoadSubsetOptions

조건자 옵션(where, orderBy, limit)입니다

반환값

true | Promise&lt;void>

데이터가 이미 로드되었으면 true이고, 데이터가 로드될 때 해결되는 Promise입니다


reset()

reset(): void;

정의 위치: packages/db/src/query/subset-dedupe.ts:227

모든 추적 상태를 초기화합니다. 로드된 조건자와 진행 중인 호출의 기록을 지웁니다. 예를 들어 기본 데이터 저장소를 지운 후 새로 시작하려는 경우 사용합니다.

참고: 진행 중인 요청은 계속 완료되지만 초기화 후 추적 상태를 업데이트하지 않습니다. 이렇게 하면 이전 요청이 삭제된 상태를 다시 채우는 것을 방지할 수 있습니다.

반환값

void