How to return value from debounced function in javascript? [duplicate]
Asked Answered
D

1

15

I have a code like that:

var originalFunction = function() {
    return 'some value';
};

var debouncedFunction = _.debounce(originalFunction, 3000);

console.log('debouncedFunction() result: ', debouncedFunction());

console.log('originalFunction() result: ', originalFunction());

(codepen link)

And the result in the console is:

debouncedFunction() result:  undefined 

originalFunction() result:  some value

As you can see, the debounced function doesn't return anything. I understand that it's caused by an internal timer in the debounced function, but is there away around that?

Dingess answered 15/6, 2016 at 13:19 Comment(0)
O
15

that's because debounced functions are called asynchronously - you can't return a value from them, although you can call another function passing the result:

var originalFunction = function() {
    console.log('some value');
    // or something like: callback(result)
};

var debouncedFunction = _.debounce(originalFunction, 3000);

console.log('debouncedFunction() result: ', debouncedFunction());
Obcordate answered 15/6, 2016 at 13:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.