Js
节流 throttle
使用场景:防多次触发,并且结果以第一次触发为基准
举例说明:添加
实现方法:当触发执行某个方法A时,方法立即执行,并指定一段独占时间,在这个独占时间内,如果有其他多次触发执行该方法A,那么将直接抛弃
/**
* 节流
* @param fn 需要节流的函数
* @param t 时间
*/
export const throttle = (fn,t=300) => {
let flag = true
const interval = t
return function () {
let context = this;
let args = arguments;
if (flag) {
fn.apply(context, args)
flag = false
setTimeout(() => {
flag = true
}, interval)
}
}
}
使用
reduceNumber = throttle(function(this: any) {
this.setData({
number: this.data.number - 1
})
}, 1000)