perfect-debounce
防抖返回 Promise 和异步函数。
改进的防抖函数,支持 Promise。
功能特性
- 经过充分测试的防抖实现
- 原生 Promise 支持
- 在 Promise 正在解析时避免重复调用
- 可配置的
trailing
和leading
行为
用法
安装包
# npm
npm install perfect-debounce
# yarn
yarn add perfect-debounce
# pnpm
pnpm add perfect-debounce
导入
// ESM
import { debounce } from 'perfect-debounce'
// CommonJS
const { debounce } = require('perfect-debounce')
防抖函数
const debounced = debounce(async () => {
// Some heavy stuff
}, 25)
调用 debounced
时,它将按照配置至少等待 25ms
,然后才实际调用我们的函数。这有助于避免多次调用。
为避免首次等待,我们可以设置 leading: true
选项。如果在此之前没有其他调用,函数将立即被调用。
const debounced = debounce(async () => {
// Some heavy stuff
}, 25, { leading: true })
如果执行异步函数的时间超过防抖值,重复调用仍将被阻止,并且会发生最后一次调用。要禁用此行为,我们可以设置 trailing: false
选项。
const debounced = debounce(async () => {
// Some heavy stuff
}, 25, { trailing: false })
💻 开发
- 克隆此仓库
- 使用
corepack enable
启用 Corepack (Node.js < 16.10 请使用npm i -g corepack
) - 使用
pnpm install
安装依赖项 - 使用
pnpm dev
运行交互式测试
许可
用心制作 💛
根据 MIT 许可证 发布。