본문으로 건너뛰기

함수: 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&lt;AsyncQueuerState&lt;TValue>, "items"> = Pick&lt;AsyncQueuerState&lt;TValue>, "items">

매개변수

fn

(value) => Promise&lt;any>

options

AsyncQueuerOptions&lt;TValue> = {}

selector

(state) => TSelected

반환값

AsyncQueuedSignal&lt;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();