throttle.js 423 B

1234567891011121314151617181920
  1. "use strict";
  2. let flag;
  3. function throttle(func, wait = 500, immediate = true) {
  4. if (immediate) {
  5. if (!flag) {
  6. flag = true;
  7. typeof func === "function" && func();
  8. setTimeout(() => {
  9. flag = false;
  10. }, wait);
  11. }
  12. } else if (!flag) {
  13. flag = true;
  14. setTimeout(() => {
  15. flag = false;
  16. typeof func === "function" && func();
  17. }, wait);
  18. }
  19. }
  20. exports.throttle = throttle;