![]() | Name | Last modified | Size | Description |
---|---|---|---|---|
![]() | Parent Directory | - | ||
![]() | dist/ | 10 months ago | - | |
![]() | README.md | 10 months ago | 2.5K | 595aea1 more query options + view options [كارل مبارك] |
![]() | package.json | 10 months ago | 1.2K | afd0ccc remove unused [كارل مبارك] |
![]() | LICENSE | 10 months ago | 1.1K |
An improved debounce function with Promise support.
trailing
and leading
behaviorInstall package:
# npm
npm install perfect-debounce
# yarn
yarn add perfect-debounce
# pnpm
pnpm add perfect-debounce
Import:
// ESM
import { debounce } from 'perfect-debounce'
// CommonJS
const { debounce } = require('perfect-debounce')
Debounce function:
const debounced = debounce(async () => {
// Some heavy stuff
}, 25)
When calling debounced
, it will wait at least for 25ms
as configured before actually calling our function. This helps to avoid multiple calls.
To avoid initial wait, we can set leading: true
option. It will cause function to be immediately called if there is no other call:
const debounced = debounce(async () => {
// Some heavy stuff
}, 25, { leading: true })
If executing async function takes longer than debounce value, duplicate calls will be still prevented a last call will happen. To disable this behavior, we can set trailing: false
option:
const debounced = debounce(async () => {
// Some heavy stuff
}, 25, { trailing: false })
corepack enable
(use npm i -g corepack
for Node.js < 16.10)pnpm install
pnpm dev
Made with 💛
Based on sindresorhus/p-debounce.
Published under MIT License.