Debounce main function is to provide a waiting period before an action is executed. This user flow is most used in modern applications that behave without explicit actions like pressing a button. The action that is delayed can be perform anything like starting an calculation or calling a REST service.
The reason we want to wait a small period before starting the action is that the person typing in the is perhaps not finished typing and we don't want to call a REST service with incomplete data or recall the same REST within moments with an updated search key. These actions will only slow down your app and provide a poor performance.
Usage: