gpt4 book ai didi

javascript - 如何在 CanJS DefineMap View 模型方法中使用去抖功能?

转载 作者:行者123 更新时间:2023-11-30 11:20:56 24 4
gpt4 key购买 nike

我正在尝试为 canjs DefineMap view-model 方法使用 lodash _.debounce 函数,但似乎 this 很棘手,即使我尝试在 init 方法中执行此操作但没有成功:

export const ViewModel = DefineMap.extend({
init() {
this.myMethod = _.debounce(this.myMethod, 200)
},
myMethod() {
// cool stuff here
}
})

感谢任何帮助!

最佳答案

因为默认情况下 DefineMap 是密封的,并且您可能希望针对 ViewModel 的各个实例进行独立节流,因此您希望这样做:

var time = new Date();

var ViewModel = can.DefineMap.extend({
id: "number",
myMethod: {
type: "any",
default(){

var fn = _.debounce(function(){
console.log(this.id+" says Hi at "+(new Date() - time))
},100);
return fn;
}
}
});

这基本上是将 myMethod 属性设置为去抖函数。你可以在这里看到它的实际效果:http://jsbin.com/nekelak/edit?html,js,console

关于javascript - 如何在 CanJS DefineMap View 模型方法中使用去抖功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com