{"_id":"p-debounce","_rev":"2934903","name":"p-debounce","description":"Debounce promise-returning & async functions","dist-tags":{"latest":"4.0.0"},"maintainers":[{"name":"sindresorhus","email":""}],"time":{"modified":"2023-03-29T09:27:44.000Z","created":"2016-10-21T08:08:20.618Z","4.0.0":"2021-04-20T09:48:15.621Z","3.0.2":"2021-03-29T07:08:35.023Z","3.0.1":"2021-01-22T18:13:53.290Z","3.0.0":"2021-01-18T18:00:37.993Z","2.1.0":"2019-04-05T07:09:37.561Z","2.0.0":"2019-03-12T17:16:16.483Z","1.0.0":"2016-10-21T08:08:20.618Z"},"users":{},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"versions":{"4.0.0":{"name":"p-debounce","version":"4.0.0","description":"Debounce promise-returning & async functions","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./index.js","engines":{"node":">=12"},"scripts":{"test":"xo && ava && tsd"},"keywords":["promise","debounce","debounced","limit","limited","concurrency","throttle","throat","limited","interval","rate","batch","ratelimit","task","queue","async","await","promises","bluebird"],"devDependencies":{"ava":"^3.15.0","in-range":"^2.0.0","time-span":"^4.0.0","tsd":"^0.14.0","xo":"^0.37.1","yoctodelay":"^1.1.0"},"gitHead":"1be433d4f1922d4e8496edb7eac5afa960625cb0","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"homepage":"https://github.com/sindresorhus/p-debounce#readme","_id":"p-debounce@4.0.0","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"348e3f44489baa9435cc7d807f17b3bb2fb16b24","size":2737,"noattachment":false,"key":"/p-debounce/-/p-debounce-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/p-debounce/download/p-debounce-4.0.0.tgz"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-debounce_4.0.0_1618912095435_0.21708815423302696"},"_hasShrinkwrap":false,"publish_time":1618912095621,"_cnpm_publish_time":1618912095621,"_cnpmcore_publish_time":"2021-12-16T23:19:22.732Z"},"3.0.2":{"name":"p-debounce","version":"3.0.2","description":"Debounce promise-returning & async functions","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./index.js","engines":{"node":">=12"},"scripts":{"test":"xo && ava && tsd"},"keywords":["promise","debounce","debounced","limit","limited","concurrency","throttle","throat","limited","interval","rate","batch","ratelimit","task","queue","async","await","promises","bluebird"],"devDependencies":{"ava":"^3.15.0","in-range":"^2.0.0","time-span":"^4.0.0","tsd":"^0.14.0","xo":"^0.37.1","yoctodelay":"^1.1.0"},"gitHead":"2eee95247f1dadb26a02ca328a2b44055fdc0caa","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"homepage":"https://github.com/sindresorhus/p-debounce#readme","_id":"p-debounce@3.0.2","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"8bc7aa524e512b8572f75c6a41858b7a2222a1ee","size":2731,"noattachment":false,"key":"/p-debounce/-/p-debounce-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/p-debounce/download/p-debounce-3.0.2.tgz"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-debounce_3.0.2_1617001714866_0.7834370578263965"},"_hasShrinkwrap":false,"publish_time":1617001715023,"_cnpm_publish_time":1617001715023,"_cnpmcore_publish_time":"2021-12-16T23:19:22.940Z"},"3.0.1":{"name":"p-debounce","version":"3.0.1","description":"Debounce promise-returning & async functions","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./index.js","engines":{"node":">=12"},"scripts":{"test":"xo && ava && tsd"},"keywords":["promise","debounce","debounced","limit","limited","concurrency","throttle","throat","limited","interval","rate","batch","ratelimit","task","queue","async","await","promises","bluebird"],"devDependencies":{"ava":"^3.15.0","in-range":"^2.0.0","time-span":"^4.0.0","tsd":"^0.14.0","xo":"^0.37.1","yoctodelay":"^1.1.0"},"gitHead":"e073518702b69db9637760a12717a7c99dd0a4b9","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"homepage":"https://github.com/sindresorhus/p-debounce#readme","_id":"p-debounce@3.0.1","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"51c38b03aa09f319ec507f1d8aba831949c8bbf2","size":2725,"noattachment":false,"key":"/p-debounce/-/p-debounce-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/p-debounce/download/p-debounce-3.0.1.tgz"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-debounce_3.0.1_1611339233180_0.34449890013638496"},"_hasShrinkwrap":false,"publish_time":1611339233290,"_cnpm_publish_time":1611339233290,"_cnpmcore_publish_time":"2021-12-16T23:19:23.196Z"},"3.0.0":{"name":"p-debounce","version":"3.0.0","description":"Debounce promise-returning & async functions","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./index.js","engines":{"node":">=12"},"scripts":{"test":"xo && ava && tsd"},"keywords":["promise","debounce","debounced","limit","limited","concurrency","throttle","throat","limited","interval","rate","batch","ratelimit","task","queue","async","await","promises","bluebird"],"devDependencies":{"ava":"^3.15.0","in-range":"^2.0.0","time-span":"^4.0.0","tsd":"^0.14.0","xo":"^0.37.1","yoctodelay":"^1.1.0"},"gitHead":"a9ad96b63eb741d9462530540c243e14a6d1cda7","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"homepage":"https://github.com/sindresorhus/p-debounce#readme","_id":"p-debounce@3.0.0","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"ae634b5be4a438297c31cbfdc3515ded21009d43","size":2717,"noattachment":false,"key":"/p-debounce/-/p-debounce-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/p-debounce/download/p-debounce-3.0.0.tgz"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-debounce_3.0.0_1610992837846_0.5550233853649027"},"_hasShrinkwrap":false,"publish_time":1610992837993,"_cnpm_publish_time":1610992837993,"_cnpmcore_publish_time":"2021-12-16T23:19:23.891Z"},"2.1.0":{"name":"p-debounce","version":"2.1.0","description":"Debounce promise-returning & async functions","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd"},"keywords":["promise","debounce","debounced","limit","limited","concurrency","throttle","throat","limited","interval","rate","batch","ratelimit","task","queue","async","await","promises","bluebird"],"devDependencies":{"ava":"^1.4.1","delay":"^4.1.0","in-range":"^1.0.0","time-span":"^3.0.0","tsd":"^0.7.2","xo":"^0.24.0"},"gitHead":"b213e791ad649af0347143561513ca2c54c1e552","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"homepage":"https://github.com/sindresorhus/p-debounce#readme","_id":"p-debounce@2.1.0","_nodeVersion":"8.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"e79f70c6e325cbb9bddbcbec0b81025084671ad3","size":2570,"noattachment":false,"key":"/p-debounce/-/p-debounce-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/p-debounce/download/p-debounce-2.1.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-debounce_2.1.0_1554448177450_0.13740964293712787"},"_hasShrinkwrap":false,"publish_time":1554448177561,"_cnpm_publish_time":1554448177561,"_cnpmcore_publish_time":"2021-12-16T23:19:24.175Z"},"2.0.0":{"name":"p-debounce","version":"2.0.0","description":"Debounce promise-returning & async functions","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd-check"},"keywords":["promise","debounce","debounced","limit","limited","concurrency","throttle","throat","limited","interval","rate","batch","ratelimit","task","queue","async","await","promises","bluebird"],"devDependencies":{"ava":"^1.3.1","delay":"^4.1.0","in-range":"^1.0.0","time-span":"^3.0.0","tsd-check":"^0.3.0","xo":"^0.24.0"},"gitHead":"7a7706e941366e61c5816b00f1acd6f0b99cefd9","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"homepage":"https://github.com/sindresorhus/p-debounce#readme","_id":"p-debounce@2.0.0","_nodeVersion":"8.15.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"4c3465749891ddb432e8a86246392206fa30018e","size":2414,"noattachment":false,"key":"/p-debounce/-/p-debounce-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/p-debounce/download/p-debounce-2.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/p-debounce_2.0.0_1552410976359_0.4206259313205092"},"_hasShrinkwrap":false,"publish_time":1552410976483,"_cnpm_publish_time":1552410976483,"_cnpmcore_publish_time":"2021-12-16T23:19:24.386Z"},"1.0.0":{"name":"p-debounce","version":"1.0.0","description":"Debounce promise-returning & async functions","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-debounce.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["promise","debounce","debounced","limit","limited","concurrency","throttle","throat","limited","interval","rate","batch","ratelimit","task","queue","async","await","promises","bluebird"],"devDependencies":{"ava":"*","delay":"^1.3.1","in-range":"^1.0.0","time-span":"^1.0.0","xo":"*"},"xo":{"esnext":true},"gitHead":"5b1383be0d237965052bd59a26e6721da180f721","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"homepage":"https://github.com/sindresorhus/p-debounce#readme","_id":"p-debounce@1.0.0","_shasum":"cb7f2cbeefd87a09eba861e112b67527e621e2fd","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"cb7f2cbeefd87a09eba861e112b67527e621e2fd","size":2215,"noattachment":false,"key":"/p-debounce/-/p-debounce-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/p-debounce/download/p-debounce-1.0.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/p-debounce-1.0.0.tgz_1477037298483_0.28452768875285983"},"directories":{},"publish_time":1477037300618,"_hasShrinkwrap":false,"_cnpm_publish_time":1477037300618,"_cnpmcore_publish_time":"2021-12-16T23:19:24.603Z"}},"readme":"# p-debounce\n\n> [Debounce](https://css-tricks.com/debouncing-throttling-explained-examples/) promise-returning & async functions\n\n## Install\n\n```\n$ npm install p-debounce\n```\n\n## Usage\n\n```js\nimport pDebounce from 'p-debounce';\n\nconst expensiveCall = async input => input;\n\nconst debouncedFn = pDebounce(expensiveCall, 200);\n\nfor (const number of [1, 2, 3]) {\n\tconsole.log(await debouncedFn(number));\n}\n//=> 3\n//=> 3\n//=> 3\n```\n\n## API\n\n### pDebounce(fn, wait, options?)\n\nReturns a function that delays calling `fn` until after `wait` milliseconds have elapsed since the last time it was called.\n\n#### fn\n\nType: `Function`\n\nPromise-returning/async function to debounce.\n\n#### wait\n\nType: `number`\n\nMilliseconds to wait before calling `fn`.\n\n#### options\n\nType: `object`\n\n##### before\n\nType: `boolean`\\\nDefault: `false`\n\nCall the `fn` on the [leading edge of the timeout](https://css-tricks.com/debouncing-throttling-explained-examples/#article-header-id-1). Meaning immediately, instead of waiting for `wait` milliseconds.\n\n### pDebounce.promise(function_)\n\nExecute `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.\n\n#### function_\n\nType: `Function`\n\nPromise-returning/async function to debounce.\n\n```js\nimport {setTimeout as delay} from 'timers/promises';\nimport pDebounce from 'p-debounce';\n\nconst expensiveCall = async value => {\n\tawait delay(200);\n\treturn value;\n}\n\nconst debouncedFn = pDebounce.promise(expensiveCall);\n\nfor (const number of [1, 2, 3]) {\n\tconsole.log(await debouncedFn(number));\n}\n//=> 1\n//=> 2\n//=> 3\n```\n\n## Related\n\n- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions\n- [p-limit](https://github.com/sindresorhus/p-limit) - Run multiple promise-returning & async functions with limited concurrency\n- [p-memoize](https://github.com/sindresorhus/p-memoize) - Memoize promise-returning & async functions\n- [debounce-fn](https://github.com/sindresorhus/debounce-fn) - Debounce a function\n- [More…](https://github.com/sindresorhus/promise-fun)\n","_attachments":{},"homepage":"https://github.com/sindresorhus/p-debounce#readme","bugs":{"url":"https://github.com/sindresorhus/p-debounce/issues"},"license":"MIT"}