| 1234567891011121314151617181920212223242526272829303132 | 
							- let timer, 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
 
 
  |