14

我有这样的代码:

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

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

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

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

(代码链接)

控制台中的结果是:

debouncedFunction() result:  undefined 

originalFunction() result:  some value

如您所见,去抖动函数不返回任何内容。我知道这是由去抖动功能中的内部计时器引起的,但是周围有吗?

4

1 回答 1

12

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

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

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

console.log('debouncedFunction() result: ', debouncedFunction());
于 2016-06-15T13:21:26.177 回答