diff options
Diffstat (limited to 'popperjs/package/lib/utils/debounce.js.flow')
-rw-r--r-- | popperjs/package/lib/utils/debounce.js.flow | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/popperjs/package/lib/utils/debounce.js.flow b/popperjs/package/lib/utils/debounce.js.flow new file mode 100644 index 0000000..ff0a5d9 --- /dev/null +++ b/popperjs/package/lib/utils/debounce.js.flow @@ -0,0 +1,17 @@ +// @flow + +export default function debounce<T>(fn: Function): () => Promise<T> { + let pending; + return () => { + if (!pending) { + pending = new Promise<T>(resolve => { + Promise.resolve().then(() => { + pending = undefined; + resolve(fn()); + }); + }); + } + + return pending; + }; +} |