vue封装全局防抖函数

vue封装全局防抖函数

// 请求防抖

const VueDebounce = (function() {

  let timer = null;

  return function(callback, ms) {

    if (timer) clearTimeout(timer);

    return new Promise((resolve, reject) => {

      timer = setTimeout(async () => {

        try {

          let res = await callback.call(this);

          resolve(res);

          clearTimeout(timer);

        } catch (error) {

          reject(error);

          clearTimeout(timer);

        }

      }, ms);

    });

  };

})();

const globalList = [ { name: 'debounce', method: VueDebounce } ];

export default {

  install: (Vue) => {

    globalList.map((obj) => {

      Vue.prototype[`$${obj.name}`] = obj.method;

    });

  }

};
//在main.js中引入
import plugin from '
Vue.use(plugin)

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注