框架
版本
防抖器 API 参考
节流器 API 参考
速率限制器 API 参考
队列 API 参考
批处理器 API 参考

防抖

函数: debounce()

ts
function debounce<TFn>(fn, initialOptions): (...args) => void
function debounce<TFn>(fn, initialOptions): (...args) => void

定义于: debouncer.ts:312

创建一个防抖函数,该函数会将提供的函数延迟调用,直到指定的等待时间结束。在等待期间的多次调用将取消之前待定的调用并重置计时器。

这是从 Debouncer 类中提取的简单函数包装器实现。如果您需要更多对防抖行为的控制,请直接使用 Debouncer 类。

如果 leading 选项为 true,函数将在第一次调用时立即执行,然后等待延迟,之后才允许再次执行。

状态管理

  • 使用 TanStack Store 进行响应式状态管理
  • 使用 initialState 在创建防抖器时提供初始状态值
  • 使用 onExecute 回调来响应函数执行并实现自定义逻辑
  • 状态包含 canLeadingExecute、执行计数和 isPending 状态
  • 状态可以通过底层 Debouncer 实例的 store.state 属性访问
  • 在使用框架适配器(React/Solid)时,状态从 hook 的 state 属性访问

类型参数

TFn extends AnyFunction

参数

fn

TFn

initialOptions

DebouncerOptions<TFn>

Returns (返回)

Function

参数

args

...Parameters<TFn>

Returns (返回)

void

示例

ts
const debounced = debounce(() => {
  saveChanges();
}, { wait: 1000 });

// Called repeatedly but executes at most once per second
inputElement.addEventListener('input', debounced);
const debounced = debounce(() => {
  saveChanges();
}, { wait: 1000 });

// Called repeatedly but executes at most once per second
inputElement.addEventListener('input', debounced);
我们的合作伙伴
Code Rabbit
Unkey
订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。

订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。