Throttle repeated attempts at execution by caching return values from the function. When under the throttle duration, the last
cached value is returned. Once the throttle duration ends, the original function is executed and its return value cached again
Throttle repeated attempts at execution by caching return values from the function. When under the throttle duration, the last cached value is returned. Once the throttle duration ends, the original function is executed and its return value cached again