본문으로 건너뛰기

함수: 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&lt;TValue>

반환값

(
item,
position,
runOnItemsChange): boolean;

큐에 항목을 추가합니다. 큐가 가득 차면 항목이 거부되고 onReject가 호출됩니다. undefined는 내부에서 "항목 없음"을 나타내는 센티널이므로 큐에 추가할 수 없고 항상 거부됩니다. 설정에 따라 우선순위 기준 또는 앞/뒤 위치에 항목을 삽입할 수 있습니다.

항목이 추가되면 true를, 큐가 가득 차면 false를 반환합니다.

사용 예시:

queuer.addItem('task');
queuer.addItem('task2', 'front');

매개변수

item

TValue

position

QueuePosition = ...

runOnItemsChange

boolean = true

반환값

boolean