12345678910111213141516171819202122 |
- // src/utils/debounce.js
- export const debounce = (func, timeout, immediate) => {
- let timer
- return function () {
- let context = this
- let args = arguments
- if (timer) clearTimeout(timer)
- if (immediate) {
- var callNow = !timer
- timer = setTimeout(() => {
- timer = null
- }, timeout)
- if (callNow) func.apply(context, args)
- } else {
- timer = setTimeout(function () {
- func.apply(context, args)
- }, timeout)
- }
- }
- }
|