I\'ve got a function which takes in some arguments. But usage of underscore debounce is :
var lazyLayout = _.debounce(calculateLayout, 300);
Bu
You should be able to just use an anonymous function as the first argument, then call whatever you like in it:
_.debounce(function(){
calculateLayout(20, 30);
}, 300);
@Jamie's answer is better.
I'll keep my original answer as below, although the it should be better to use Jamie's answer if you are familiar with JS:
var calculateLayout = function(a,b) {
console.log('a is ' + a + ' and b is ' + b);
}
var debounceCalculate = _.debounce(function(a, b){
calculateLayout(a, b);
}, 300);
debounceCalculate(1, 2);
Since nobody has written the one liner without extra var
and function
, I'll do it myself:
_.debounce(calculateLayout, 300)(a, b);
Debounce function returns another function, so you can call it just afterwards debounce is executed.
You don't need an anonymous function in the middle, arguments will automatically be passed to the original function when you run the debounced version.
var debounceCalculate = _.debounce(calculateLayout, 300);
debounceCalculate(a,b);
As an advantage you don't have to hardcode-bind the arguments in advance
You can try it and if curious just check the source