vue中调用防抖函数不生效的解决方法
export function debounce(fn,delay){console.log("点击")var timer = null;var delay = delay || 200;return function(e){console.log(e)var args = arguments;var that = this;clearTimeout(timer)timer =
·
export function debounce(fn,delay){
console.log("点击")
var timer = null;
var delay = delay || 200;
return function(e){
console.log(e)
var args = arguments;
var that = this;
clearTimeout(timer)
timer = setTimeout(function(){
fn.apply(that,args)
},delay)
}
}
import {debounce} from "../../util.js"
add(e){
debounce(function(){
console.log("点击")
},500)
}
}
最开始向上面这样写,会发现debounce函数执行了,但是其返回的一个延时函数并没有执行。仔细检查发现,没有调用执行其返回的一个函数。所以应该将调用处改为如下;
add(e){
// console.log("点击")
// delay(()=>{
// console.log("点击")
// },500)
debounce(function(){
console.log("点击")
},500)()//加括号表示调用其返回的那个函数
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)