zoukankan      html  css  js  c++  java
  • 随便写了一个js防抖工具

    随便写了一个js防抖工具

    工具类SimpleUtils.js

    const buf = {}
    
    /**
     *
     * 没事的时候写了一个防抖的小工具,思路蛮简单的其实...当然,我本来是不想用clearTimeout的,不过因时间有限,就没有去想其他思路了...<br/>
     * 还有一个思路是用数组,每次新增的结果都要断言上一个的结果,性质和目前写的差不多,还占内存...
     *
     * ---
     * @param callback 被防抖执行的业务
     * @param id 用于标记...你要防抖的业务...防止...狂乱...
     * @param timeout
     * @return {Promise<Function>} callback
     */
    export const debounceUtils = (callback, id, timeout = 205) => {
        return new Promise(resolve => {
            if (!!buf[id] && buf[id][0]) clearTimeout(buf[id][0])
            buf[id] = [
                setTimeout(() => {
                    resolve(buf[id][1]);
                }, timeout)
                , callback
            ];
        })
    }
    
    

    使用方法

    import {debounceUtils} from "@/utils/SimpleUtils";
    
    // 如果有返回值就用闭包的方式取出来,正常情况直接await掉就好...或者then出来也行
    (await debounceUtils(() => {
        // todo something here
    }, 'function description(unique require)'))();
    
  • 相关阅读:
    HDU 5171
    HDU 3709
    HDU 3652
    HDU 3555
    【10】梯度消失和爆炸;梯度检验
    【9】归一化输入与标准化
    【8】正则化
    【7】偏差、方差;过拟合、欠拟合
    【6】深层神经网络的前向与反向传播
    【5】激活函数的选择与权值w的初始化
  • 原文地址:https://www.cnblogs.com/Arunoido/p/15730823.html
Copyright © 2011-2022 走看看