隨便寫了一個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)'))();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM