mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-31 23:37:49 +00:00
Ensure cancel resets lastCallTime and lastInvokeTime.
This commit is contained in:
18
lodash.js
18
lodash.js
@@ -9330,6 +9330,7 @@
|
||||
if (timerId !== undefined) {
|
||||
clearTimeout(timerId);
|
||||
}
|
||||
lastCallTime = lastInvokeTime = 0;
|
||||
lastArgs = lastThis = timerId = undefined;
|
||||
}
|
||||
|
||||
@@ -9338,17 +9339,20 @@
|
||||
}
|
||||
|
||||
function debounced() {
|
||||
var time = now(),
|
||||
isInvoking = shouldInvoke(time);
|
||||
|
||||
lastArgs = arguments;
|
||||
lastThis = this;
|
||||
lastCallTime = now();
|
||||
lastCallTime = time;
|
||||
|
||||
if (timerId === undefined) {
|
||||
return leadingEdge(lastCallTime);
|
||||
}
|
||||
// Check times to handle invocations in a tight loop.
|
||||
if (shouldInvoke(lastCallTime)) {
|
||||
if (isInvoking) {
|
||||
if (timerId === undefined) {
|
||||
return leadingEdge(lastCallTime);
|
||||
}
|
||||
// Handle invocations in a tight loop.
|
||||
clearTimeout(timerId);
|
||||
timerId = undefined;
|
||||
timerId = setTimeout(timerExpired, wait);
|
||||
return invokeFunc(lastCallTime);
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -21956,10 +21956,12 @@
|
||||
|
||||
assert.strictEqual(funced(), 1);
|
||||
funced.cancel();
|
||||
|
||||
assert.strictEqual(funced(), 2);
|
||||
funced();
|
||||
|
||||
setTimeout(function() {
|
||||
assert.strictEqual(callCount, 2);
|
||||
assert.strictEqual(callCount, 3);
|
||||
done();
|
||||
}, 64);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user