return 如何从 javascript 中的去抖动函数中获取值?

How to return value from debounced function in javascript?

我有这样的代码:

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

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

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

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

(codepen link)

控制台中的结果是:

debouncedFunction() result:  undefined 

originalFunction() result:  some value

如您所见,去抖动函数 return 没有任何作用。我知道这是由 debounced 函数中的内部计时器引起的,但是否有解决办法?

那是因为去抖函数是异步调用的 - 你不能 return 它们的值,尽管你可以调用另一个传递结果的函数:

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

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

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