function throttle(func, wait = 500, immediate = true) {
? if (immediate) {
? ? if (!flag) {
? ? ? flag = true;
? ? ? // 如果是立即執(zhí)行,則在wait毫秒內(nèi)開始時執(zhí)行
? ? ? typeof func === 'function' && func();
? ? ? timer = setTimeout(() => {
? ? ? ? flag = false;
? ? ? }, wait);
? ? }
? } else {
? ? if (!flag) {
? ? ? flag = true
? ? ? // 如果是非立即執(zhí)行,則在wait毫秒內(nèi)的結(jié)束處執(zhí)行
? ? ? timer = setTimeout(() => {
? ? ? ? flag = false
? ? ? ? typeof func === 'function' && func();
? ? ? }, wait);
? ? }
? }
};