我有一个方法调用foo()
,他正在进行API调用,foo()
方法正在调用滑块eventChange
方法,滑块的步长为100,而maxNum
为500k+,因此当有人滑动滑块时,它将调用eventChange
方法超过1次。
现在,我想在进行API调用之前对方法foo()
进行400ms的反跳,就像我们对FormControl
值更改所做的那样。
我试过用lodash debounce
var debounce = _.debounce(function(){
foo();
}, 30000);
debounce();
字符串
但它说foo()
不是一个函数。如何使用原始TypeScript对方法foo()
进行反跳。
**注意:**Foo()不能绑定到任何html。
3条答案
按热度按时间wbgh16ku1#
您可以使用lodash-decorators轻松地将lodash操作应用于函数
字符串
它对于所有基于类的Angular 组件或服务尤其有用。
r9f1avp52#
好吧,不知何故,我设法解决了这个问题,通过
setTimeout
和它的工作完美的我作为一个debouncer,字符串
第一个if总是会清除最后一个运行的
timeOut
,所以滑动结束时,I将只有一个对foo()
的调用,因为只有最后一个timeOut
是活动的。setTimeout
总是返回一个timerId
。dgjrabp23#
你可以使用rxjs,因为你正在使用angular,你已经有了那个库,所以你有一个去抖动函数可以在上面使用。
字符串