3***@qq.com
3***@qq.com
  • 发布:2019-11-08 18:29
  • 更新:2019-11-08 18:33
  • 阅读:4297

请教一下为撒在uniapp里面用防抖函数不生效,直接就执行了,没有延时。我在普通html页面测试没有问题

分类:uni-app
2019-11-08 18:29 负责人:无 分享
已邀请:
IT梅

IT梅 - 一个前端开发者

有具体代码没?怎样的流程

  • 3***@qq.com (作者)

    你看下上面代码 不知道为什么。111始终打印不出来。进不去这个闭包里。但this.fetchTeacher这个方法却执行了

    2019-11-08 18:43

  • IT梅

    回复 3***@qq.com: this.fetchTeacher后面的括号去一下,就不执行了

    2019-11-08 18:55

  • 3***@qq.com (作者)

    回复 IT梅: 不是,我本来就要执行这个方法 ,只是方法立即执行了 ,防抖函数没有生效,本来是应该延迟执行的 括号去了完全不执行了

    2019-11-08 19:09

  • IT梅

    回复 3***@qq.com: this.$mUtils.debounce(this.fetcher(),1200)(),最后补一个()是可以执行的,因为debounce方法返回的是一个未执行的funcition,但是如果this.fetcher()中没有return一个函数的话apply会报错,不是太理解,这个函数为什么能防抖

    2019-11-11 10:24

  • 3***@qq.com (作者)

    回复 IT梅: 感谢提醒。这块地方我也有点蒙。最后改成

    created(){

    this.$watch('keyWord', this.$mUtils.debounce(() => {

    this.fetchTeacher()

    },1200))

    }

    才实现我要的实时搜索效果。时间很紧有空细细研究一哈。至于为什么防抖。我的理解就是每次用户输入的时候都把定时器clear掉,再创建一个新的定时器,这样就确保在这个delay时间里用户还在输入字符的话,就不会执行fn函数。

    2019-11-11 14:30

该问题目前已经被锁定, 无法添加新回复