123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- Drupal.debounce = function(func, wait, immediate) {
- let timeout;
- let result;
- return function(...args) {
- const context = this;
- const later = function() {
- timeout = null;
- if (!immediate) {
- result = func.apply(context, args);
- }
- };
- const callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow) {
- result = func.apply(context, args);
- }
- return result;
- };
- };
|