¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 |