4.0.0 • Published 5 years ago

p-debounce v4.0.0

Weekly downloads
27,574
License
MIT
Repository
github
Last release
5 years ago

p-debounce

Debounce promise-returning & async functions

Install

$ npm install p-debounce

Usage

import pDebounce from 'p-debounce';

const expensiveCall = async input => input;

const debouncedFn = pDebounce(expensiveCall, 200);

for (const number of [1, 2, 3]) {
	console.log(await debouncedFn(number));
}
//=> 3
//=> 3
//=> 3

API

pDebounce(fn, wait, options?)

Returns a function that delays calling fn until after wait milliseconds have elapsed since the last time it was called.

fn

Type: Function

Promise-returning/async function to debounce.

wait

Type: number

Milliseconds to wait before calling fn.

options

Type: object

before

Type: boolean\ Default: false

Call the fn on the leading edge of the timeout. Meaning immediately, instead of waiting for wait milliseconds.

pDebounce.promise(function_)

Execute function_ unless a previous call is still pending, in which case, return the pending promise. Useful, for example, to avoid processing extra button clicks if the previous one is not complete.

function_

Type: Function

Promise-returning/async function to debounce.

import {setTimeout as delay} from 'timers/promises';
import pDebounce from 'p-debounce';

const expensiveCall = async value => {
	await delay(200);
	return value;
}

const debouncedFn = pDebounce.promise(expensiveCall);

for (const number of [1, 2, 3]) {
	console.log(await debouncedFn(number));
}
//=> 1
//=> 2
//=> 3

Related

  • p-throttle - Throttle promise-returning & async functions
  • p-limit - Run multiple promise-returning & async functions with limited concurrency
  • p-memoize - Memoize promise-returning & async functions
  • debounce-fn - Debounce a function
  • More…
@everything-registry/sub-chunk-2396test1dwebtextchecker-elementvue-bucket-flow-graphvue-chimerakahnkerygmakysely-cachehixilsp-mode-tsserver@w3block/pixchain-react-metamask@wbgneto/currents-playwright@wnfs-wg/nest@twind/cli@types/p-debounce@uci/utils@theia/scm@theia/vsx-registry@theia/task@theia/debug@theia/preferences@theia/core@villagekit/product-kit@viostream/slate-transcript-editor@xrpl/ai-reactalfred-weighawesome-antd@gqty/reactts-langservertypescript-language-server-forktypescript-language-server-rctypescript-language-server-with-ts@infinitebrahmanuniverse/nolb-p-@likec4/language-server@nbook/typescript-language-server@nick.heiner/jscodemodp-funp-promise-utilsp-thunkp-suitereact-native-async-image-storereact-native-async-storepromise-funreflowionext-routes-dirnolwalletr3shaper-reactr3shaper-vuepromised-gatewaysindresorhus.jsslate-transcript-editorsnowdevcerebro-gitiocerebro-cerebro-todoistcerebro-npmscerebro-npmcerebro-chocolateycerebro-youdaocerebo-fileioconnect-depscontainer-registry-syncdatoms-clicskm-weathercskm-youdaobbgobedrock-setupbb-transcript-editorbedrock-web-accountbraincap-org-transcript-editorbitweb-cligenesis-studiofuton-mediafuton-media-cligamewall@systemfsoftware/trigger.dev@tartjs/coreecforce-theme-clientity-geneplus-clifileread-library-legacyfacilmap-frontend@dank074/discord-video-stream@hyperspace/cli@hydrofoil/shaperone-wc-shoelace@gedit/preference@gigit-ai/gigit-apps@gigit-ai/gigit-react@hixt/hixi@hixt/nitro@currents/playwright@gabrielmaialva33/discord-video-stream@devdocsai/react@devpodio/debug@foxyimg/toaster@foxyimg/vue-ui@elastic/typescript-language-server@dhub/cli@igloo-be/core-cms@kathondvla/sri-client@_all_docs/cache
4.0.0

5 years ago

3.0.2

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago

2.1.0

7 years ago

2.0.0

7 years ago

1.0.0

9 years ago