src/misc/debounce.js
function factory($timeout) {
  /** @type {function(T, number, boolean, angular.ITimeoutService): T} */
  const deb = debounce;
  return (func, wait, invokeApply) => {
    return deb(func, wait, invokeApply, $timeout);
  };
}
function factory($timeout) {
  /** @type {function(T, number, boolean, angular.ITimeoutService): T} */
  const deb = debounce;
  return (func, wait, invokeApply) => {
    return deb(func, wait, invokeApply, $timeout);
  };
}
function factory ( $timeout ) { /** @type {function(T, number, boolean, angular.ITimeoutService): T} */ const deb = debounce ; return ( func , wait , invokeApply ) => { return deb ( func , wait , invokeApply , $timeout ) ; } ; }
Provides a debounce service. That service is a function
used to debounce calls to a user-provided function.

@template {function(?): void} T args
@param {angular.ITimeoutService} $timeout Angular timeout service.
@return {import("ngeo/misc/debounce.js").miscDebounce<T>} The debounce function.

@ngdoc service
@ngname ngeoDebounce
@ngInject
@private
@hidden
Provides a debounce service . That service is a function used to debounce calls to a user - provided function .