// export function debounce(fn) {
//     let waiting;
//     return function() {
//         if (waiting) return;
//         waiting = true;
//         const context = this,
//             args = arguments;
//         const later = function() {
//             waiting = false;
//             fn.apply(context, args);
//         };
//         this.$nextTick(later);
//     };
// }

export function debounce(fn, delay) {
    let timer = null;
  
    return function() {
        let args = arguments;
        let context = this;
    
        if (timer) {
            clearTimeout(timer);
        }
        timer = setTimeout(function() {
            fn.apply(context, args);
        }, delay);
    };
  }
