debounce防抖

229 阅读1分钟

debounce

_debounce(fn, delay, args) {
    clearTimeout(fn.id)
    fn.id = setTimeout(() => {
      fn.call(this, args)
    }, delay)
},

req(args) {
    !this._req && (this._req = () => {
       .......
    })
    this._debounce(this._req, 300, args)
},

this._debounce(Toast, 500, '请先填写品牌名称哦')

debounce坑

req(args) {this._req = () => {.......}},
this._req每次都是新的方法
[参考来源_记一次在Vue中使用debounce遇到的坑](https://www.jianshu.com/p/d5de1c077105)

经典防抖代码

<script type="text/javascript">
    function debounce(method,context){
        clearTimeout(method.tId);
        method.tId=setTimeout(function(){
            method.call(context);
        },100)
    }
</script>