HarmonyOS ts 防抖Debounce?

ts 防抖Debounce,HarmonyOS 是否有对应的api支持,是否可以ets调用ts?

阅读 481
1 个回答

目前没有api支持,可以自行实现防抖函数,实现防抖可参考以下demo:

@Entry
@Component
struct SearchDemo{
  @State timeout: number = -1;
  build() {
    Column(){
      Text('点击')
        .fontSize('25fp')
        .fontColor(Color.White)
        .fontWeight(FontWeight.Bold)
        .borderRadius(15)
        .padding(8)
        .backgroundColor(Color.Blue)
        .onClick(() => {
          this.debounce(this.setFinalInput, 3000);
        })
    }
  }
  debounce(fn: Function, wait: number = 300) {
    if(this.timeout !== -1){
      clearTimeout(this.timeout);
    }
    this.timeout = setTimeout(fn.bind(this), wait);
    console.log("tag--- ==timeout==",this.timeout);
  }

  setFinalInput() {
    console.log("tag--- setFinalInput this", JSON.stringify(this));
    // this.finalSearchInput = this.searchInput;
  }
}