An async function is a function declared with the async keyword. Async functions are instances of the AsyncFunction constructor, and the await keyword is permitted within them. The async and await keywords enable asynchronous, promise-based behavior to be written in a cleaner style, avoiding the need to explicitly configure promise chains.
Example:
function resolveAfter2Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('resolved');
    }, 2000);
  });
}
async function asyncCall() {
  console.log('calling');
  const result = await resolveAfter2Seconds();
  console.log(result);
  // expected output: "resolved"
}
asyncCall();Async functions may also be defined as expressions.
async function name([param[, param[, ...param]]]) {
   statements
}Parameters: 
 name –  The function’s name.
 param – The name of an argument to be passed to the function.
 statements – The statements comprising the body of the function.  The await mechanism may be used.
Return value – A Promise which will be resolved with the value returned by the async function, or rejected with an exception thrown from, or uncaught within, the async function.