∵ING 2023-04-17 00:04 采纳率: 82.6%
浏览 17
已结题

throttle节流函数遇到了问题,求解答一下

throttle节流函数第一种写法为什么是错的,不能运行。第二种写法我觉得有点奇怪,onInput方法根本就不是一个函数,直接调用throttle了,为什么不在外面包一个function()
1.第一种

img


2.第二种

img

  • 写回答

3条回答 默认 最新

  • 乘风xs 2023-04-17 09:29
    关注

    _lodash.throttle(...)只是返回了一个函数,并不会直接调用这个函数,第一种写法的错误在于onInput函数内部只是定义了一个函数,并没有调用这个函数,第一种写法相当于如下代码。

    methods: {
        onInput(e){
              let fn = _lodash.throttle(() = > this.$set(this.value, "input", e.value), 1000) ; // 在onInput函数内部只是得到了一个函数,而没有调用这个函数,所以onInput函数被调用的时候,并不会产生任何效果。
        } 
    }
    // 所以如果要使用第一种写法,应该把得到的函数调用一下,如下
    methods: {
        onInput(e){
             _lodash.throttle(() = > {
                        this.$set(this.value, "input", e.value)
              }, 1000)() ; // 在最后添加上()进行调用。 
        } 
    }
    

    第二种写法正是把_lodash.throttle()返回的函数赋值给了onInput函数,使得onInput函数本身就是上面代码中的fn, 所以没问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月17日

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)