|
@@ -12,14 +12,13 @@
|
|
|
*/
|
|
|
export default (fn, timeout = 0) => {
|
|
|
let timer = null;
|
|
|
- const abortTimer = () => clearTimeout(timer);
|
|
|
+ const abort = () => clearTimeout(timer);
|
|
|
|
|
|
- const debouncedFunction = (...args) => {
|
|
|
- abortTimer();
|
|
|
+ // extend function with abort method
|
|
|
+ return Object.assign((...args) => {
|
|
|
+ abort();
|
|
|
timer = setTimeout(() => fn(...args), timeout)
|
|
|
- };
|
|
|
-
|
|
|
- debouncedFunction.abort = abortTimer;
|
|
|
-
|
|
|
- return debouncedFunction;
|
|
|
+ }, {
|
|
|
+ abort
|
|
|
+ });
|
|
|
};
|