bug
jiangping
2023-11-07 64b432916af9c9218ab3f3eca614e26c542142ae
minipro_standard/uni_modules/uview-ui/libs/function/throttle.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
let timer; let
    flag
/**
 * èŠ‚æµåŽŸç†ï¼šåœ¨ä¸€å®šæ—¶é—´å†…ï¼Œåªèƒ½è§¦å‘ä¸€æ¬¡
 *
 * @param {Function} func è¦æ‰§è¡Œçš„回调函数
 * @param {Number} wait å»¶æ—¶çš„æ—¶é—´
 * @param {Boolean} immediate æ˜¯å¦ç«‹å³æ‰§è¡Œ
 * @return null
 */
function throttle(func, wait = 500, immediate = true) {
    if (immediate) {
        if (!flag) {
            flag = true
            // å¦‚果是立即执行,则在wait毫秒内开始时执行
            typeof func === 'function' && func()
            timer = setTimeout(() => {
                flag = false
            }, wait)
        }
    } else if (!flag) {
        flag = true
        // å¦‚果是非立即执行,则在wait毫秒内的结束处执行
        timer = setTimeout(() => {
            flag = false
            typeof func === 'function' && func()
        }, wait)
    }
}
export default throttle