JavaScript is Synchronous in nature which means that it has an event loop that allows you to queue up an action that won’t take place until the loop is available sometime after the code that queued the action has finished executing. But there are a lot of functionalities in our program that make our code Asynchronous and one of them is the Async/Await functionality.
Async/Await is the extension of promises that we get as support in the language.
What is Async Function ?
Async simply allows us to write promises-based code as if it was synchronous and it checks that we are not breaking the execution thread. Async functions will always return a value.
It makes sure that a promise is returned and if it is not returned then JavaScript automatically wraps it in a promise which is resolved with its value.