传统防抖函数调用较为简单,须要传入函数,且总是执行最初一次。

function debounce(func, wait) {    let timer;    return function() {      let context = this; // 留神 this 指向      let args = arguments; // arguments中存着e               if (timer) clearTimeout(timer);       timer = setTimeout(() => {        func.apply(this, args)      }, wait)    }}

当初须要给零碎各个中央加防抖,只执行第一次,前面的操作作废。如果用传统的防抖办法,调用太麻烦了。简化一下,最好用一行代码就能够实现防抖。
封装的办法:

function deboundce(wait) {    let timer;    return function() {        let status = true;        if (timer) {            clearTimeout(timer);            status = false;        }        timer = setTimeout(()=> {            clearTimeout(timer);            timer = false;        }, wait);        return status;    }}export const debPromise = deboundce(500);

调用办法:

import { debPromise } from '../utils/deboundce.js';function()    {    if(!debPromise()) return;    //后续操作}