框架
版本
Debouncer API 参考
Throttler API 参考
速率限制器 API 参考
队列 API 参考
批处理器 API 参考

createDebouncer

函数:createDebouncer()

ts
function createDebouncer<TFn>(fn, initialOptions): SolidDebouncer<TFn>
function createDebouncer<TFn>(fn, initialOptions): SolidDebouncer<TFn>

定义于:debouncer/createDebouncer.ts:53

一个 Solid 钩子,用于创建和管理 Debouncer 实例。

这是一个较低级别的钩子,可直接访问 Debouncer 的功能,而无需 任何内置的状态管理。这使您可以将其与任何您喜欢的状态管理解决方案 (createSignal、Redux、Zustand 等)集成。

此钩子提供防抖功能,以限制函数的调用频率, 在执行最新调用之前等待指定的延迟。这对于处理 诸如窗口大小调整、滚动事件或实时搜索输入等频繁事件非常有用。

防抖器仅在自上次调用以来经过指定的等待时间后才执行函数。 如果在等待时间到期之前再次调用该函数,则计时器将重置并重新开始等待。

类型参数

TFn extends AnyFunction

参数

fn

TFn

initialOptions

DebouncerOptions<TFn>

返回

SolidDebouncer<TFn>

示例

tsx
// 对搜索函数进行防抖以限制 API 调用
const debouncer = createDebouncer(
  (query: string) => fetchSearchResults(query),
  { wait: 500 } // 最后一次按键后等待 500 毫秒
);

// 在事件处理程序中
const handleChange = (e) => {
  debouncer.maybeExecute(e.target.value);
};

// 通过信号访问防抖器状态
console.log('执行次数:', debouncer.executionCount());
console.log('是否待处理:', debouncer.isPending());

// 更新选项
debouncer.setOptions({ wait: 1000 });
// 对搜索函数进行防抖以限制 API 调用
const debouncer = createDebouncer(
  (query: string) => fetchSearchResults(query),
  { wait: 500 } // 最后一次按键后等待 500 毫秒
);

// 在事件处理程序中
const handleChange = (e) => {
  debouncer.maybeExecute(e.target.value);
};

// 通过信号访问防抖器状态
console.log('执行次数:', debouncer.executionCount());
console.log('是否待处理:', debouncer.isPending());

// 更新选项
debouncer.setOptions({ wait: 1000 });