함수: injectAsyncQueuedSignal()
function injectAsyncQueuedSignal<TValue, TSelected>(
fn,
options,
selector): AsyncQueuedSignal<TValue, TSelected>;
정의 위치: angular-pacer/src/async-queuer/injectAsyncQueuedSignal.ts:52
Angular 시그널과 비동기 큐 기능을 결합하여 관리형 상태를 갖춘 비동기 큐어를 생성하는 Angular 함수입니다. 이 함수는 현재 큐 상태와 큐 제어 메서드를 모두 제공합니다.
큐에서 항목이 추가, 제거 또는 처리될 때마다 큐 상태가 자동으로 업데이트됩니다. 모든 큐 작업은 함수가 반환하는 상태 배열에 반영됩니다.
이 함수는 다음과 같은 호출 가능한 객체를 반환합니다.
queued(): 현재 큐 항목을 배열로 가져옵니다.queued.addItem(...): 큐에 항목을 추가합니다.queued.queue: 추가 제어 메서드를 제공하는 큐어 인스턴스입니다.
타입 매개변수
TValue
TValue
TSelected
TSelected extends Pick<AsyncQueuerState<TValue>, "items"> = Pick<AsyncQueuerState<TValue>, "items">
매개변수
fn
(value) => Promise<any>
options
AsyncQueuerOptions<TValue> = {}
selector
(state) => TSelected
반환값
AsyncQueuedSignal<TValue, TSelected>
예시
// Default behavior - track items
const queued = injectAsyncQueuedSignal(
async (item) => {
const response = await fetch('/api/process', {
method: 'POST',
body: JSON.stringify(item)
});
return response.json();
},
{ concurrency: 2, wait: 1000 }
);
// Add items
queued.addItem(data1);
// Access items
console.log(queued()); // [data1, ...]
// Control the queue
queued.queuer.start();
queued.queuer.stop();