Capture the result of the last func call in _.throttle and _.debounce.

Former-commit-id: 2e783fad2e86824bf098bdb24ca6911317576f32
This commit is contained in:
John-David Dalton
2012-09-06 20:49:06 -07:00
parent a742b5f3e2
commit 102d6d8c84
2 changed files with 13 additions and 3 deletions

View File

@@ -3488,7 +3488,7 @@
function delayed() {
timeoutId = null;
if (!immediate) {
func.apply(thisArg, args);
result = func.apply(thisArg, args);
}
}
@@ -3674,7 +3674,7 @@
function trailingCall() {
lastCalled = new Date;
timeoutId = null;
func.apply(thisArg, args);
result = func.apply(thisArg, args);
}
return function() {

View File

@@ -318,7 +318,17 @@
QUnit.module('lodash.debounce');
(function() {
test('subsequent "immediate" debounced calls should return the result of the first call', function() {
asyncTest('subsequent debounced calls return the last `func` result', function() {
var debounced = _.debounce(function(value) { return value; }, 100);
debounced('x');
setTimeout(function() {
equal(debounced('y'), 'x');
QUnit.start();
}, 220);
});
test('subsequent "immediate" debounced calls return the last `func` result', function() {
var debounced = _.debounce(function(value) { return value; }, 100, true),
result = [debounced('x'), debounced('y')];