Throttle or debounce asynchronous functions and return cached result for each function calls. It can be used for rate limit.