HarmonyOS Search组件中函数防抖的实现方式
定义:debounce
debounce(fn: Function, wait: number = 300) {
let timeout: number = -1;
console.log("debounce");
console.log("this",JSON.stringify(this))
return () => {
if(timeout!=-1){
clearTimeout(timeout);
}
timeout = setTimeout(fn.bind(this), wait);
console.log("==timeout==",timeout);
}
}
setFinalInput() {
console.log("setFinalInput this", JSON.stringify(this));
this.finalSearchInput = this.searchInput;
}
调用:
this.debounce(this.setFinalInput, 300)
调用debounce函数后无法执行this.setFinalInput函数。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS ts 防抖Debounce
689浏览 • 1回复 待解决
HarmonyOS 项目的防抖和截流怎么实现
1345浏览 • 1回复 待解决
HarmonyOS 摄像头设置帧率、防抖等API,CAPI与TS API没有对齐
1066浏览 • 1回复 待解决
请问js input组件中的search、share方法怎么使用的?
3027浏览 • 1回复 待解决
HarmonyOS Search组件如何设置searchButton的fontColor
642浏览 • 1回复 待解决
HarmonyOS search 组件 如何实现进入页面后自动获取焦点弹出键盘
1023浏览 • 1回复 待解决
HarmonyOS 防截屏功能如何实现
1147浏览 • 1回复 待解决
HarmonyOS Search组件是否有清空事件监听方法
849浏览 • 1回复 待解决
HarmonyOS web组件中onalert函数咨询
780浏览 • 1回复 待解决
HarmonyOS web组件中,js调用native的函数中,无法显示@CustomDialog组件
788浏览 • 1回复 待解决
HarmonyOS 如何在builder函数中传入组件
1216浏览 • 1回复 待解决
气泡组件有推荐的实现方式么?
1557浏览 • 1回复 待解决
HarmonyOS Search搜索框组件 搜索icon怎么放到右边
1365浏览 • 1回复 待解决
HPM: Search error: { "error": "" } Error: Failed to search:
6206浏览 • 1回复 待解决
HarmonyOS 如何在一个 push 的子页面中实现防截屏功能?
773浏览 • 1回复 待解决
HarmonyOS 如何防截屏防录屏
1343浏览 • 1回复 待解决
HarmonyOS Search组件如何设置默认直接唤醒输入法
806浏览 • 1回复 待解决
HarmonyOS ArkTS中如何实现泛型构造函数
1813浏览 • 1回复 待解决
HarmonyOS 想要获悉Video组件横屏时的实现方式
1560浏览 • 1回复 待解决
求告知如何实现防截屏功能
1386浏览 • 1回复 待解决
组件自定义回调函数实现
1664浏览 • 1回复 待解决
HarmonyOS 防截屏
1253浏览 • 1回复 待解决
HarmonyOS 防录屏
1085浏览 • 1回复 待解决
HarmonyOS 防重复点击
740浏览 • 1回复 待解决
调用this.debounce(this.setFinalInput, 300)没有执行return的函数是因为return的函数本身没有被调用导致,可以通过this.debounce(this.setFinalInput, 300)()调用到,但是这样会不停调用debounce函数无限创建闭包每一个闭包分别引用一个timeout,不能清除原定时器,最终每一次点击都会生效无法达到防抖的效果,建议可以全局设一个变量以达到防抖的目的:
如果需要将防抖函数封装,可以试下以下方式: