Your Submissions
You haven't submitted any code for this challenge yet. Solve the problem by passing all the test cases, and your submissions will appear here.
xxxxxxxxxx36
function throttle(func, waitTime) { // Set isThrottling flag to false to start // and savedArgs to null let isThrottling = false, savedArgs = null; // Spread the arguments for .apply return function (args) { // Return a wrapped function // Flag preventing immediate execution if (!isThrottling) { // Actual initial function execution func.apply(this, args); // Flip flag to throttling state isThrottling = true; // Queue up timer to flip the flag so future iterations can occur function queueTimer() { setTimeout(() => { // Stop throttling isThrottling = false; // Queueing up the next invocation after wait time passes if (savedArgs) { func.apply(this, savedArgs); isThrottling = true; savedArgs = null; queueTimer(); } }, waitTime);OUTPUT
Results will appear here.