我正在尝试在角度5项目中使用lodash油门和去抖功能,但它似乎没有按预期工作。
行为是传递给任一函数的函数参数永远不会被执行。
例如有油门,我使用以下方法导入它:
import throttle = require('lodash/throttle');
然后,在任何方法中,我都有以下内容:
throttle(this.testFunction, 100);
我也尝试过:
throttle(() => {
this.testFunction();
}, 1000);
testFunction就是以下内容:
public testFunction() {
console.log('test function!@!!@!');
}
任何帮助表示赞赏!
答案 0 :(得分:3)
throttle
不会调用函数。它返回一个新函数,在调用时,确保传递给throttle
的真函数最多每x次调用一次:
所以,如果你这样做:
throttle(func, 100);
什么都没发生。你必须这样做:
let throttledFunc = throttle(func, 100);
您必须致电throttledFunc
而不是func
。 throttledFunc
会检查您是否至少在100毫秒内调用了该功能
所以,如果你这样做:
setInterval(throttledFunc, 50); // execute every 50 ms.
func
将每100毫秒调用一次,而不是每隔50毫秒调用一次。