함수: queue()
function queue<TValue>(fn, initialOptions): (item, position, runOnItemsChange) => boolean;
정의 위치: queuer.ts:745
항목을 추가하면 즉시 처리하는 큐를 생성합니다. 기본적으로 항목을 FIFO 순서로 순차 처리합니다.
이 동기 버전은 더 가벼워 대부분의 경우 충분합니다. 프로미스, 재시도 지원, 중단 기능, 동시 실행 또는 고급 오류 처리가 필요하면 asyncQueue로 전환합니다.
상태 관리:
- 반응형 상태 관리에 TanStack Store를 사용합니다.
- 큐어 생성 시
initialState로 초기 상태 값을 제공합니다. onExecute콜백으로 항목 실행에 반응하고 사용자 지정 로직을 구현합니다.onItemsChange콜백으로 큐에서 항목이 추가되거나 제거될 때 반응합니다.onExpire콜백으로 항목 만료에 반응하고 사용자 지정 로직을 구현합니다.onReject콜백으로 큐가 가득 찼을 때 항목 거부에 반응합니다.- 상태에는 실행 횟수, 만료 횟수, 거부 횟수, isRunning 상태가 포함됩니다.
- 내부 Queuer 인스턴스의
store.state속성으로 상태에 접근할 수 있습니다. - 프레임워크 어댑터(React/Solid)를 사용할 때는 훅의 state 속성에서 상태에 접근합니다.
사용 예시:
// Basic sequential processing
const processItems = queue<number>((n) => console.log(n), {
wait: 1000,
onItemsChange: (queuer) => console.log(queuer.peekAllItems())
});
processItems(1); // Logs: 1
processItems(2); // Logs: 2 after 1 completes
// Priority queue
const processPriority = queue<number>((n) => console.log(n), {
getPriority: n => n // Higher numbers processed first
});
processPriority(1);
processPriority(3); // Processed before 1
타입 매개변수
TValue
TValue
매개변수
fn
(item) => void
initialOptions
QueuerOptions<TValue>
반환값
(
item,
position,
runOnItemsChange): boolean;
큐에 항목을 추가합니다. 큐가 가득 차면 항목이 거부되고 onReject가 호출됩니다.
undefined는 내부에서 "항목 없음"을 나타내는 센티널이므로 큐에 추가할 수 없고 항상 거부됩니다.
설정에 따라 우선순위 기준 또는 앞/뒤 위치에 항목을 삽입할 수 있습니다.
항목이 추가되면 true를, 큐가 가득 차면 false를 반환합니다.
사용 예시:
queuer.addItem('task');
queuer.addItem('task2', 'front');
매개변수
item
TValue
position
QueuePosition = ...
runOnItemsChange
boolean = true
반환값
boolean