应用场景

由于事件频繁被触发,因而频繁执行DOM操作、资源加载等重行为,导致UI停顿甚至浏览器崩溃。

简单用法

/**
2 * 空闲控制 返回函数连续调用时,空闲时间必须大于或等于 idle,action 才会执行
3 * @param fn   {Function}    相关执行函数
4 * @param delay {Number}  延迟时间,也就是阈值,单位是毫秒
5 * @return {function}    返回一个“去弹跳”了的函数
6 */
7 debounce(fn,delay)

例子

let validateNameRepeat = async (rule, value, callback) => {
      try {
        let res = await valiSchoolName({
        option:this.params.option,
        name: this.form.name,
        id: this.params.id})
        if (res.code === 200){
          if(res.result === "true"){
             callback() 
          }
          if(res.result === "false"){
             callback(new Error('当前学校名称已经存在,请修改'));  
          }
        } else {
          callback(new Error('服务器不能验证学校名称'));  
        }      
      } catch (error) {
          callback(new Error('验证学校名称异常'));           
      }
};
validateNameRepeat = debounce(validateNameRepeat,300,this)