如何在javascript中从debounced函数返回值?

Vic*_*huk 4 javascript jquery throttling underscore.js debouncing

我有这样的代码:

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

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

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

console.log('originalFunction() result: ', originalFunction());
Run Code Online (Sandbox Code Playgroud)

(codepen链接)

控制台的结果是:

debouncedFunction() result:  undefined 

originalFunction() result:  some value
Run Code Online (Sandbox Code Playgroud)

如您所见,去抖动功能不会返回任何内容.据我所知,它是由去抖动功能中的内部定时器引起的,但它是否存在?

pwo*_*laq 8

因为debounced函数是异步调用的 - 你不能从它们返回一个值,尽管你可以调用另一个传递结果的函数:

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

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

console.log('debouncedFunction() result: ', debouncedFunction());
Run Code Online (Sandbox Code Playgroud)