본문으로 건너뛰기

클래스: Throttler<TFn>

정의 위치: throttler.ts:150

스로틀된 함수를 생성하는 클래스입니다.

스로틀은 지정된 시간 범위 내에 함수를 최대 한 번만 호출하도록 보장합니다. 호출이 잠시 멈출 때까지 기다리는 디바운스와 달리, 스로틀은 호출 빈도와 관계없이 일관된 실행 시점을 보장합니다. 이 동기 버전은 더 가벼우며 대개 필요한 기능을 모두 제공합니다. Promise, 재시도 지원, 중단/취소 기능 또는 고급 오류 처리가 필요하면 AsyncThrottler로 전환하십시오.

선행 에지 실행과 후행 에지 실행을 모두 지원합니다:

  • 선행: 첫 번째 호출 시 즉시 실행합니다(기본값: true)
  • 후행: 스로틀 적용 중에 호출되면 대기 기간이 지난 후 실행합니다(기본값: true)

빠르게 연속으로 발생하는 이벤트를 하나로 통합하여 마지막 호출만 처리하려면 Debouncer 사용을 고려하십시오.

상태 관리:

  • 반응형 상태 관리에 TanStack Store를 사용합니다
  • 스로틀러를 생성할 때 초기 상태 값을 제공하려면 initialState를 사용합니다
  • 함수 실행에 반응하고 사용자 지정 로직을 구현하려면 onExecute 콜백을 사용합니다
  • 상태에는 실행 횟수, 마지막 실행 시각, 대기 중 상태 등이 포함됩니다
  • 클래스를 직접 사용할 때는 throttler.store.state를 통해 상태에 액세스할 수 있습니다
  • 프레임워크 어댑터(React/Solid)를 사용할 때는 throttler.state에서 상태에 액세스합니다

예시

const throttler = new Throttler(
(id: string) => api.getData(id),
{ wait: 1000 } // Execute at most once per second
);

// First call executes immediately
throttler.maybeExecute('123');

// Subsequent calls within 1000ms are throttled
throttler.maybeExecute('123'); // Throttled

타입 매개변수

TFn

TFn extends AnyFunction

생성자

생성자

new Throttler<TFn>(fn, initialOptions): Throttler<TFn>;

정의 위치: throttler.ts:158

매개변수

fn

TFn

initialOptions

ThrottlerOptions&lt;TFn>

반환값

Throttler&lt;TFn>

속성

fn

fn: TFn;

정의 위치: throttler.ts:159


key

key: string | undefined;

정의 위치: throttler.ts:154


options

options: ThrottlerOptions<TFn>;

정의 위치: throttler.ts:155


store

readonly store: Store<Readonly<ThrottlerState<TFn>>>;

정의 위치: throttler.ts:151

메서드

cancel()

cancel(): void;

정의 위치: throttler.ts:322

대기 중인 후행 실행을 모두 취소하고 내부 상태를 지웁니다.

후행 실행이 예약되어 있다면(trailing=true로 스로틀하여 발생한 경우), 이 메서드는 해당 실행이 발생하지 않게 합니다. 내부 타임아웃과 저장된 인수가 지워집니다.

대기 중인 실행이 없으면 아무 효과가 없습니다.

반환값

void


flush()

flush(): void;

정의 위치: throttler.ts:300

현재 대기 중인 실행을 즉시 처리합니다

반환값

void


maybeExecute()

maybeExecute(...args): void;

정의 위치: throttler.ts:241

스로틀된 함수를 실행하려고 시도합니다. 실행 동작은 스로틀러 옵션에 따라 달라집니다:

  • 마지막 실행 이후 충분한 시간이 지났다면(>= 대기 기간):

    • leading=true이면: 즉시 실행합니다
    • leading=false이면: 다음 후행 실행을 기다립니다
  • 아직 대기 기간 내라면:

    • trailing=true이면: 대기 기간 종료 시점에 실행되도록 예약합니다
    • trailing=false이면: 실행 요청을 버립니다

매개변수

args

...Parameters&lt;TFn>

반환값

void

예시

const throttled = new Throttler(fn, { wait: 1000 });

// First call executes immediately
throttled.maybeExecute('a', 'b');

// Call during wait period - gets throttled
throttled.maybeExecute('c', 'd');

reset()

reset(): void;

정의 위치: throttler.ts:333

스로틀러 상태를 기본값으로 재설정합니다

반환값

void


setOptions()

setOptions(newOptions): void;

정의 위치: throttler.ts:183

스로틀러 옵션을 업데이트합니다

매개변수

newOptions

Partial&lt;ThrottlerOptions&lt;TFn>>

반환값

void