在Angular 5项目中,lodash throttle也没有去抖动

时间:2018-04-17 10:42:39

标签: javascript angular typescript lodash throttling

我正在尝试在角度5项目中使用lodash油门和去抖功能,但它似乎没有按预期工作。

行为是传递给任一函数的函数参数永远不会被执行。

例如有油门,我使用以下方法导入它:

import throttle = require('lodash/throttle');

然后,在任何方法中,我都有以下内容:

throttle(this.testFunction, 100);

我也尝试过:

throttle(() => {
          this.testFunction();
        }, 1000);

testFunction就是以下内容:

  public testFunction() {
    console.log('test function!@!!@!');
  }

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:3)

throttle不会调用函数。它返回一个新函数,在调用时,确保传递给throttle的真函数最多每x次调用一次:

所以,如果你这样做:

throttle(func, 100);

什么都没发生。你必须这样做:

let throttledFunc = throttle(func, 100);

您必须致电throttledFunc而不是functhrottledFunc会检查您是否至少在100毫秒内调用了该功能

所以,如果你这样做:

setInterval(throttledFunc, 50); // execute every 50 ms.

func将每100毫秒调用一次,而不是每隔50毫秒调用一次。