debounce.js 448 B

1234567891011121314151617181920
  1. const timeouts = new Map();
  2. /**
  3. * Debounces a callback.
  4. * @param cb
  5. * @param ms
  6. * @param id
  7. */
  8. export function debounce(cb, ms, id) {
  9. // Clear current timeout for id
  10. const timeout = timeouts.get(id);
  11. if (timeout != null) {
  12. window.clearTimeout(timeout);
  13. }
  14. // Set new timeout
  15. timeouts.set(id, window.setTimeout(() => {
  16. cb();
  17. timeouts.delete(id);
  18. }, ms));
  19. }
  20. //# sourceMappingURL=debounce.js.map